Watir 如何点击嵌套元素

Jos*_*oma 2 ruby selenium watir watir-webdriver

我试图从我尝试过多种组合中单击“先生”drop down list但它们似乎都不起作用。

我什至尝试过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 
Run Code Online (Sandbox Code Playgroud)

点击先生

Jus*_* Ko 5

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

$browser.ul(class: 'dropdown-menu').link(text: 'Mr').click
Run Code Online (Sandbox Code Playgroud)

请注意,这里假设只有一个ul元素为 class dropdown-menu。如果有多个,则需要使用可能存在于 DOM 中较高位置的元素将搜索范围限定到特定下拉列表。

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

$browser.link(text: 'Mr').click
Run Code Online (Sandbox Code Playgroud)

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

$browser.link(text: 'Mr').when_present.click
Run Code Online (Sandbox Code Playgroud)