我有一个包含以下html
表的页面<tbody>
<tr>
<td>
<div>
<input /> <----what I want to click
</div>
</td>
<td></td>
<td></td>
<td>
<div>
<a>
<span>text here</span> <-----how i find correct table row
</a>
</div>
</td>
</tr>
</tbody>
问题是“此处显示文字”是我找到正确复选框以点击的唯一信息。
我试过的是
this.getDriver().findElement(By.xpath("//span[text()='" + texthere + "']/parent::tr/following-sibling::td/div/input")).click();
怎么也找不到这个元素。
任何帮助将不胜感激。
答案 0 :(得分:0)
试试这个 *首先找到你想要的子节点 *然后找到所需元素类型的第一个祖先(在你的情况下为“tr”) *然后获得此tr
下面的第一个输入元素String xpathExpression = "//tbody//span[contains(., 'text here')]/ancestor::tr[1]//input";
driver.findElement(By.xpath(xpathExpression)).click();
答案 1 :(得分:0)
尝试使用以下xpath: -
this.getDriver().findElement(By.xpath("//tbody//td[text()='"+texthere+"']/preceding-sibling::td//input")).click();
在上面的xpath中,我们发现 td 标记,其中包含文本,并且参考此标记我们找到了它的前一个兄弟 td 这样它包含输入标签