2016-09-06 2 views
2

열 1에있는 텍스트를 기반으로 HTML 표의 열 5에서 단추를 클릭해야합니다. 열 1은 사용자 이름 열 5와 아니오 ID 클릭해야합니다. 각 테이블 셀에는 Li이 여러 개 있습니다. 첫 번째 셀의 이름, 전자 메일, 회사 이름은 각각 Li입니다. user name = foo 다음 COL에서 버튼을 클릭하면XPath Java Selenium이 다른 열의 텍스트를 기반으로 한 열의 값을 클릭하려고 시도했습니다

내가하고 싶은 말 5

1 열에서 사용자 이름을 찾을 수 내 현재 XPath는

driver.findElement(By.xpath("//tr//td//li[contains(text(), 'Edith Fields')]")); 

등 (및 작품)으로하지만, 난 몰라 그 행을 열 5에서 버튼을 클릭하는 행을 사용하는 지금은 어떻게 말할 줄 알았어. 또한 특정 웹 요소를 <Li> 아니 반환 <TR> xpath 그래서 그 부모 얻을 필요가있을 것이라고 가정 xpath?

는 대형으로 전체 테이블의 HTML을 붙여하지하지만이 5

<tr class=" ev_dhx_skyblue"> 
<td valign="middle" bgcolor="white" align="left" title=" Edith Fields [email protected] "> 
<ul> 
<li title=" Edith Fields [email protected] "> Edith Fields </li> 
<li class="last" title=" Edith Fields [email protected] "> [email protected] </li> 
</ul> 


<td valign="middle" bgcolor="white" align="left"> 
<ul> 
<li> 
<li class="last"> 
<a onclick="liftAjax.lift_ajaxHandler("ffffgggg=true", null, null, null); return false;">Reset Password</a> 
</li> 
</ul> 

답변

0

당신은 XPath는 아래 사용하여 시도해야 한 행 안부 1 COL입니다 : -

String xpath = "(.//td[descendant::li[contains(text(), 'Edith Fields')]]/following::td//a[contains(text(), 'Reset Password')])[1]" 

또는

String xpath = "(.//td[descendant::li[contains(text(), 'Edith Fields')]]/following::a[contains(text(), 'Reset Password')])[1]" 

또는

String xpath = "(.//td[descendant::li[contains(text(), 'Edith Fields')]]/following::a)[1]" 
xpath 위의 이러한

사용 누군가가 아래와 같은 요소를 찾기 위해 : - 당신은 항상 5 열이 남아 있는지 확인하는 경우

driver.findElement(By.xpath(xpath)); 
0

, 다른 사람이

//td[contains(.,'Edith Fields')]/following-sibling::td[4]//a 

을 사용하여 사용
//td[contains(.,'Edith Fields')]/following-sibling::td[contains(.,'Reset Password')]//a 
관련 문제