在Selenium WebDriver Java中单击其他单元格的子元素
通过首先查找包含特定文本的td来单击a元素的代码是什么在Selenium WebDriver Java中单击其他单元格的子元素,selenium,selenium-webdriver,Selenium,Selenium Webdriver,通过首先查找包含特定文本的td来单击a元素的代码是什么 <table> <tbody> <tr> <td><a class="link">link</a></td> <td>1st</td> </tr> <tr> <td&
<table>
<tbody>
<tr>
<td><a class="link">link</a></td>
<td>1st</td>
</tr>
<tr>
<td><a class="link">link</a></td>
<td>2nd</td>
</tr>
</tbody>
</table>
试试这个xPath//td[containstext,'1st']/../td/a[@class='link']
你的错误来自轴心国的兄弟姐妹。标记a不是td标记的同级。我用。。要上升,请再次选择td,然后选择a
我使用测试工具测试了xPath。它起作用了。请注意,每个浏览器都有自己的xPath实现,因此它的行为可能会有所不同
但是,由于xPath表达式中没有任何异国情调,因此我不希望出现任何问题。还要注意,当一个元素上有多个类时,class=可能会导致问题。Xpath将class属性视为文本字符串,因此任何添加的类或顺序的更改都会破坏Xpath。我会用[contains@class,link]但这也暗示了这个技巧的重要性。我在.xpath//a[@class='link'][2]中使用了它,如果有多个元素具有class='link'
driver.findElement(By.xpath("//td[contains(text(), '1st')]/following-sibling::a[@class='link']")).click();