ruby - Watir 如何点击嵌套元素

标签 ruby selenium watir watir-webdriver

我试图从下拉列表中点击“先生” 我已经尝试了多种方法的组合,但似乎没有一种起作用。

我什至尝试过 xpath 这通常是可靠的,但对于这种情况它失败了。

$browser.element(:xpath, "/html/body/div[1]/div[1]/div[1]/div/div[2]/div[1]/div[2]/div/div[2]/div/div[2]/div[2]/form/div[2]/div/div[2]/div/div/div/div/div/ul/li[2]/a").click 

click on MR

最佳答案

Saurabh Gaur 建议的 XPath 可以使用以下方式以更具可读性的类似 Watir 的方式编写:

$browser.ul(class: 'dropdown-menu').link(text: 'Mr').click

请注意,这假设只有一个 ul 元素具有类 dropdown-menu。如果有多个,您将需要使用可能存在于 DOM 更高层的元素将搜索范围限定到特定下拉列表。

但是,鉴于可能只有一个链接带有文本“Mr”,您可能可以简单地逃脱:

$browser.link(text: 'Mr').click

鉴于链接是一个从隐藏切换到可见的对话框,您可能还需要等待:

$browser.link(text: 'Mr').when_present.click

关于ruby - Watir 如何点击嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37746411/

相关文章:

ruby - 如何使用 vagrant 在 GCE 实例上允许 HTTP 流量和端口 27017?

java - 信息 : Detected dialect: W3C using Selenium Java

java - selenium webdriver中gradle的实际用途是什么?

ruby - 找到了新的 Select_list 并且不知道如何为此编写代码

ruby - CSV 到 JSON Ruby 脚本?

ruby-on-rails - Rails 协会 : One way associations

Ruby Net::HTTP POST 发送数据 gzip 压缩

java - HtmlUnitDriver : enable/disable Basic Authentication?

ruby - 关于表行和循环的 Watir 问题

Ruby:从二维数组中的每个子数组中获取第 n 个元素