【问题标题】:webdriver click on a link in a webpagewebdriver 点击网页中的链接
【发布时间】:2013-06-18 06:21:24
【问题描述】:

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

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

【问题讨论】:

  • 使用 xpath 定位器会遇到什么异常?

标签: java xpath selenium webdriver webpage


【解决方案1】:

您可以使用By.linktext()

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 2016-09-29
      • 2013-02-06
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 2016-12-04
      • 1970-01-01
      • 2014-12-27
      相关资源
      最近更新 更多