我正在尝试点击网页中的特定链接。基本上这是一个Home按钮。所以,无论我浏览,我总觉得这个按钮是相同的位置。
截至目前,我使用driver.findElement(By.xpath("//span/ul/li/a")).click();
命令单击此命令,但即使xpath没有更改,这也不适用于所有网页。这是链接的萤火虫视图。
id不是静态的,它会不断变化。那么我可以通过其他方式检测到这个链接呢?
答案 0 :(得分:4)
您可以使用By.linktext()
driver.findElement(By.linkText("Home")).click();
答案 1 :(得分:2)
正如dirkk所说,你总是可以通过By.linkText()
选择器找到一个元素,虽然这可能是一个变幻无常的解决方案:“home”链接文本最终可能会改变(在这种情况下你的选择器将不再起作用) ),页面上可能有其他“主页”链接(在这种情况下,您不一定会获得所需的元素)或“主页”链接文本可能在不同语言中有所不同(在这种情况下,您的选择器只会在测试英文网站时工作。)
如果您可以控制生成的HTML代码,则应尝试在此链接中添加静态ID甚至是类,并通过By.id()
或By.cssSelector()
选择器进行查找。
如果不这样做,请尝试使用比结构(标记层次结构)更依赖于语义(ID和类)的选择器。这样你的选择器也会更稳定,也更容易理解。但最后,如果你测试一个不可测试的外部网站,这并不总是可能的。