答案 0 :(得分:4)
Saurabh Gaur建议的XPath可以用更加可读的Watir式方式编写,使用:
$browser.ul(class: 'dropdown-menu').link(text: 'Mr').click
请注意,这假设只有一个ul
元素,其中包含类dropdown-menu
。如果有多个,则需要使用可能在DOM中更高的元素将搜索范围限定为特定的下拉列表。
但是,鉴于可能只有一个链接文本"先生",您可以简单地逃脱:
$browser.link(text: 'Mr').click
鉴于链接是一个从隐藏切换到可见的对话框,您可能还需要等待:
$browser.link(text: 'Mr').when_present.click
答案 1 :(得分:1)
您的xPath
位置取决于element
位置..如果elements
发生更改,它将无法正常工作,其位置意味着在页面上执行某些操作后添加一些elements
。
看到附加图片后,我生成了以下xPath
,如下所示: -
//ul[contains(@class, 'dropdown-menu')]/descendant::span[contains(.,'Mr')]/parent::a
尝试使用此xPath
..可能会有效......:)