webdriver单击网页中的链接

时间:2013-06-17 09:54:44

标签: java xpath selenium webdriver webpage

我正在尝试点击网页中的特定链接。基本上这是一个Home按钮。所以,无论我浏览,我总觉得这个按钮是相同的位置。 截至目前,我使用driver.findElement(By.xpath("//span/ul/li/a")).click();命令单击此命令,但即使xpath没有更改,这也不适用于所有网页。这是链接的萤火虫视图。

enter image description here

id不是静态的,它会不断变化。那么我可以通过其他方式检测到这个链接呢?

2 个答案:

答案 0 :(得分:4)

您可以使用By.linktext()

driver.findElement(By.linkText("Home")).click();

答案 1 :(得分:2)

正如dirkk所说,你总是可以通过By.linkText()选择器找到一个元素,虽然这可能是一个变幻无常的解决方案:“home”链接文本最终可能会改变(在这种情况下你的选择器将不再起作用) ),页面上可能有其他“主页”链接(在这种情况下,您不一定会获得所需的元素)或“主页”链接文本可能在不同语言中有所不同(在这种情况下,您的选择器只会在测试英文网站时工作。)

如果您可以控制生成的HTML代码,则应尝试在此链接中添加静态ID甚至是类,并通过By.id()By.cssSelector()选择器进行查找。

如果不这样做,请尝试使用比结构(标记层次结构)更依赖于语义(ID和类)的选择器。这样你的选择器也会更稳定,也更容易理解。但最后,如果你测试一个不可测试的外部网站,这并不总是可能的。