我的列表嵌套在两个标题下,我不知道如何通过watir访问它们,因为样式,显示设置为“无”,直到发生“悬停”事件。并且直到悬停/悬停时才定义该类。
b.link(:text, /Assessments/).fire_event('onmouseover')
将打开初始下拉列表。我不知道如何访问“子级”
中的元素以下内容的变更由watir拒绝:
b.link(:class, "sub-level").click
b.link(:class, "sub-level").fire_event('onmouseover')
b.link(:class, "sub-level").fire_event('hover')
Watir::Exception::UnknownObjectException: unable to locate element, using {:class=>"sub-level", :tag_name=>"a"}
我一直在通过IRB运行它,以便快速测试我添加到脚本中的每个新行。如果这不正确,我将不胜感激。
<li class="top-level">
<a class="" href="#">
Assessments
<img id="lfArrowImg" style="border:0px;" src="https://test.com/top/images/global_nav_downArrow.gif">
</a>
<ul style="z-index: 1045; display: none;">
<li class="sub-level">
<a class="">
Assessments
<div id="menugroup" class="dr-menu-node dr-menu-node-icon rich-menu-item-folder rich-menu-group-folder"></div>
</a>
<ul style="z-index: 1068; display: none;">
<li class="sub-level">
<a class="" href="http://test.com/content/aa/assessment/index.xhtml">Main</a>
</li>
<li class="sub-level">
<li class="sub-level">
</ul>
</li>
谢谢, 达明
答案 0 :(得分:2)
错误是正确的,因为该代码中没有带有子类级别的链接标记。该类的东西是包含链接元素的li(List Item)元素(也就是'anchor',因此是a标签)
尝试这样的事情(取决于您要点击的链接)
browser.li(:class => 'sub-level', :text => 'Assessments').link.click
browser.li(:class => 'sub-level', :text => 'Main').link.click
有关识别元素的方法的更多信息,特别是如果它们没有方便的ID,Class等,请参阅此SO问题的答案:How to get index of parent element using Watir Webdriver?以及此问题的答案(全部三个):{ {3}}