我正在尝试让Selenium Webdriver单击具有经常更改的xpath的链接,因此我不能指望通过相对或绝对xpath找到它。我处理的元素的页面源看起来像......
<a href="https://webpage.com"/>
<img align="left" border="0" src="/img/folder.png"/>
<strong>Foobar Folder</strong>
</a>
我基本上都想点击链接到&#34; Foobar Folder&#34;基于链接本身的文本,&#34; Foobar Folder&#34;。有什么建议如何最好地完成这个?我用Java编写它。
答案 0 :(得分:1)
然后尝试以下代码:
driver.findElement(By.xpath("//*[.='Foobar Folder']")).click();
它会点击具有精确innerHTML /文字的元素作为&#39; Foobar文件夹&#39;
答案 1 :(得分:1)
类似的东西:
String path = "//a/strong[contains(text(), 'Foobar Folder')]";
webDriver.findElement(By.xpath(path)).click();
答案 2 :(得分:1)
下面的xpath将找到一个标签并单击它。
webDriver.findElement(By.xpath("//strong[.='Foobar Folder']/..")).click();
答案 3 :(得分:0)
文本在锚内。所以显而易见的选择应该是:webDriver.findElement(By.partialLinkText("Foobar Folder")).click();
。