使用:使用watir-webdriver定位LI元素

时间:2011-05-10 10:50:10

标签: watir watir-webdriver

我试图找到并点击jQuery菜单元素,菜单被定义为包含多个LI元素的多个UL元素。

在Mac 10.5上使用Firefox 3.6.17,在我使用的标准WATIR中使用;

browser.li(:text,"Options...").click

browser.div(:id,"Attributes-menu").li(:text,"Copy").click

单击菜单项但使用watir-webdriver(0.2.3)报告无法找到LI元素。虽然我可以通过使用:class。

找到包含DIV和LI的实例

我在下面附上了一个菜单HTML的示例,任何人都可以建议一种可靠的方法来查找LI项目吗?

<div class="ws-menu-container ws-context-menu ws-context-menu-hidden" style="top: 16px; left: 214px; " id="Attributes-menu">
<ul class="ws-context-menu"><li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Copy&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Add...&nbsp;&nbsp;&nbsp;</li>
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Remove...&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Clear Translation Flag&nbsp;&nbsp;&nbsp;</li>
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Copy from Master Language...&nbsp;&nbsp;&nbsp;</li>
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Push to Child Languages...&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu">&nbsp;&nbsp;&nbsp;Options...&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu">&nbsp;&nbsp;&nbsp;Refresh&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</li></ul></div>

3 个答案:

答案 0 :(得分:20)

这对我有用:

browser.div(:id => "Attributes-menu").li(:text => /Copy/).click

答案 1 :(得分:3)

找不到它的原因是。除了Željko的正则表达式解决方案之外,你应该能够通过将非破坏空间的Unicode字节添加到你正在寻找的字符串来实现这一点,例如:

browser.li(:text => "\xc2\xa0\xc2\xa0\xc2\xa0Options...\xc2\xa0\xc2\xa0\xc2\xa0")

答案 2 :(得分:1)

要做Zeljko的解决方案但使用字符串变量,您需要从字符串变量

创建正则表达式类的新实例
searchtext = Regexp.new(mystringvariable)
browser.div(:id => "Attributes-menu").li(:text => searchtext).click

有关详细信息,请参阅Rdoc for the Ruby Regexp class