0

我正在尝试单击网页中的特定链接。基本上这是一个主页按钮。所以无论我在哪里浏览,我总是发现这个按钮是同一个位置。到目前为止,我使用driver.findElement(By.xpath("//span/ul/li/a")).click();命令单击它,但即使 xpath 没有改变,这也不适用于所有网页。这是链接的萤火虫视图。

在此处输入图像描述

id 不是静态的,它会不断变化。那么我可以检测到此链接的其他方法是什么?

4

2 回答 2

4

您可以使用By.linktext()

driver.findElement(By.linkText("Home")).click();
于 2013-06-17T10:21:09.823 回答
2

正如 dirkk 所说,您始终可以通过By.linkText()选择器定位元素,尽管这可能是一个反复无常的解决方案:“home”链接文本最终可能会改变(在这种情况下,您的选择器将不再起作用),可能还有其他“home” " 页面上的链接(在这种情况下,您不一定会获得所需的元素)或“主页”链接文本在不同的语言中可能会有所不同(在这种情况下,您的选择器仅在测试英文站点时才有效)。

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

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

于 2013-06-17T22:21:24.377 回答