我试图找到并点击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"> Copy </li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu-disable"> Add... </li>
<li class="ws-context-menu-disable"> Remove... </li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu-disable"> Clear Translation Flag </li>
<li class="ws-context-menu-disable"> Copy from Master Language... </li>
<li class="ws-context-menu-disable"> Push to Child Languages... </li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu"> Options... </li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu"> Refresh </li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu"> Help </li></ul></div>
答案 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