您应该能够使用 xpath。
例如,考虑下面的 HTML
<ul class="ui-autocomplete" role="listbox">
<li class="ui-menu-item" role="menuitem" wicketpath="false">Value 1</li>
<li class="ui-menu-item" role="menuitem" wicketpath="false">Value 2</li>
<li class="ui-menu-item" role="menuitem" wicketpath="true">Value 3</li>
</ul>
以下 xpath 将给出 wicketpath = true 的 li 的文本:
puts browser.li(:xpath, "//li[@wicketpath='true']").text
#=>Value 3
更新 - 替代解决方案 - 添加到定位器:
如果您使用大量 wicketpath,您可以将其添加到定位器中。
在你需要 watir-webdriver 之后,添加这个:
# This allows using :wicketpath in locators
Watir::HTMLElement.attributes << :wicketpath
# This allows accessing the wicketpath attribute
class Watir::Element
attribute(String, :wicketpath, 'wicketpath')
end
这将让您使用 'wicketpath' 作为定位器:
p browser.li(:wicketpath, 'true').text
#=> "Value 3"
p browser.li(:text, 'Value 3').wicketpath
#=> true