我需要根据第1列中的文本单击html表第5列中的按钮。第1列是用户名第5列是一个没有ID
的按钮,我需要单击。每个表格单元格中都有多个Li
。所以第一个单元格的名称,电子邮件,公司都在Li
中。
我想说是user name = foo
然后点击第5栏中的按钮
我当前在第1列中查找用户名的xpath就是这样(并且有效)
driver.findElement(By.xpath("//tr//td//li[contains(text(), 'Edith Fields')]"));
但我不知道怎么说现在我有行用来点击该行第5列中的按钮。另外我假设xpath我已经为特定的<Li>
返回了一个web元素<TR>
所以我可能需要得到它的父母?
不粘贴整个表格HTML,但这是一行col 1和col 5
<tr class=" ev_dhx_skyblue">
<td valign="middle" bgcolor="white" align="left" title=" Edith Fields email@foo.com ">
<ul>
<li title=" Edith Fields email@foo.com "> Edith Fields </li>
<li class="last" title=" Edith Fields email@foo.com "> email@foo.com </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 :(得分:0)
你应该尝试在xpath下面使用: -
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
中的任何一个来查找如下元素: -
driver.findElement(By.xpath(xpath));
答案 1 :(得分:0)
如果您确定它始终保持第5列,请使用此
//td[contains(.,'Edith Fields')]/following-sibling::td[4]//a
否则使用此
//td[contains(.,'Edith Fields')]/following-sibling::td[contains(.,'Reset Password')]//a