2014-01-17 1 views
0

Selenium (C#)을 사용하여 HTML 요소에 액세스하려고하는데 현재 문제가 있습니다. 이 요소는 다음과 같은 구조 내에 있습니다.NAV 요소 내부의 링크에 액세스

<nav> 
    <ul class="menu"> id="menu"> 
     <li id="ignore"> </li> 
     <li id="test_tab"> 
     <a href="/.../..." title="Update">Update</a> 
     </li> 
    </ul> 
</nav> 

액세스해야하고 "업데이트"를 클릭해야합니다. 이 링크에 액세스하는 가장 좋은 방법은 무엇입니까? 나는 .findElement (By.Id ("test_tab"))와 비슷한 시도를 성공없이했다. 선택한 후에는 .click()을 호출 할 계획입니다.

미리 감사드립니다.

답변

1

매우 간단합니다! 먼저 어떤 요소가 클릭을 받고 있는지 확인해야합니다. 이 경우 <a>이됩니다. 그냥 간단한 CSS 선택기를 사용하십시오.

driver.FindElement(By.CssSelector("ul#menu li#test_tab > a[title='Update']")).Click(); 
+0

감사합니다 sircapsalot. 왜 내가 CSS 선택기를 시도하지 않았는지 모르겠다. –

+0

CSS는 xpath보다 훨씬 빠르고 간단합니다. 게다가 다른 개발에는 매우 실용적입니다. 나는 CSS 셀렉터 학습에 많은 시간을 투자 할 것입니다. 나는 당신이 필요하다면 컨설팅을 할 수 있습니다.) : http://www.airpair.com/selenium/selenium-expert-daniel-davison – sircapsalot

0

li 요소를 선택하려고 했으므로 링크를 클릭 할 수 없습니다. 'a'를 선택하면 여러 가지 옵션이있을 수 있습니다.

1)

.findElement(By.LinkText("Update")).click() 

2)

IWebElement update = driver.findElement(By.Id("test_tab")); 
update = update.findElement(By.TagName("a")); 
update.click(); 

3) 직접 'A'를 선택하는 XPath를 사용할 수 있습니다.

관련 문제