以下是HTML内容。在使用watir进行悬停时,我需要显示以下列表,该列表手动发生。
<li class=" dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" ceid="MM - Tour" href="/product-tour">
Tour
<b class="caret"/>
</a>
<ul class="dropdown-menu dropdown-tour depth-1 row">
<li class=" col-md-3">
<li class=" col-md-3">
<li class=" col-md-3">
<li class=" col-md-3">
</ul>
</li>
使用fire_event“onmouseover”,在irb中返回true。但是没有执行悬停,列表也没有显示。下面是irb输出。
IRB(主):035:0&GT; b.link(:text =&gt;'Tour')。present?
=&GT;真正
IRB(主):036:0&GT; b.link(:text =&gt;'Tour')。fire_event“onmouseover”
=&GT;真
使用.hover时,面对以下错误。
Selenium :: WebDriver :: Error :: InvalidElementStateError:无法执行本机交互:无法加载本机事件组件。 来自[remote server] file:/// C:/ Users / SRIRAM~1 / AppData / Local / Temp / webdri ver-profile20140917-6780-x3gs6b/extensions/fxdriver@googlecode.com/components/dr iver_component.js:9770 :3:在`generateErrorForNativeEvents'
以下是我的宝石版本。
watir-webdriver (0.6.10)
selenium-webdriver (2.42.0)
Firefox Browser version : 30.0
有没有其他方法可以使用watir webdriver执行鼠标悬停?
的问候,
Avinash Duggirala
答案 0 :(得分:2)
使用hover
时,下拉列表会在一秒钟内显示,然后消失。似乎页面认为鼠标移动到Tour链接然后移开。鉴于hover
在Chrome中有效,我可能会说这是Firefox驱动程序的问题。
您可以通过使用Javascript强制显示下拉列表来解决此问题 - 即更改显示样式来自&#34; none&#34;到&#34;阻止&#34;:
dropdown = b.link(:text => 'Tour').parent.ul
b.execute_script('arguments[0].style.display="block";', dropdown)