我尝试使用watir-webdriver实现测试自动化。顺便说一句,我是watir-webdriver,ruby和co。
的新生我们所有的HTML实体都有一个名为“wicketpath”的唯一HTML属性。可以使用“name”,“id”a.s.o访问元素,但不能使用属性“wicketpath”访问元素。所以我尝试使用XPATH,但我没有成功。
有人可以通过属性“wicketpath”帮助我使用codesnippet如何访问元素吗?
提前致谢。
R上。
答案 0 :(得分:2)
您应该可以使用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
答案 1 :(得分:0)
试试这个
将browser.li(:css,&#34; .ui-autocomplete&gt; .ui-menu-item [wicketpath =&#39; true&#39;]&#34;)。text。
请告诉我上述脚本是否有效。