【发布时间】:2014-09-18 01:09:18
【问题描述】:
以下是 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(main):035:0> b.link(:text => 'Tour').present?
=> 真的
irb(main):036:0> b.link(:text => 'Tour').fire_event "onmouseover"
=> 真的 -
在使用 .hover 时,遇到以下错误。
Selenium::WebDriver::Error::InvalidElementStateError:无法执行本机交互:无法加载本机事件组件。 来自 [远程服务器] 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'中
以下是我的 gems 版本。
watir-webdriver (0.6.10)
selenium-webdriver (2.42.0)
Firefox Browser version : 30.0
还有其他方法可以使用 watir webdriver 执行此鼠标悬停吗?
问候,
阿维纳什·杜吉拉拉
【问题讨论】:
-
也许尝试将您的 Firefox 和 Selenium-WebDriver 升级到最新版本?从CHANGES doc 开始,Firefox 30 中可能不支持原生事件。Selenium 2.42.0 已更新为支持 Firefox 29,Selenium 2.43.0 支持 Firefox 24、31 和 32 的原生事件。
-
@JustinKo 这没有通过问题解决。我将 selenium webdriver 升级到(2.43.0)并将我的 FF 升级到 32,但效果不佳。即使我尝试将 Firefox 降级到版本 24,即使这种组合也没有成功。还有其他选择吗??
-
@JustinKo 我尝试使用 Selenium element = driver.find_element(:css => '#main_menu ul.nav.navbar-nav.navbar-right>li:nth-child(2)>a' ) driver.action.move_to(element).perform 即使这只是让覆盖层闪烁一秒钟。从 Watir 的角度等待您的回复!
-
driver.action.move_to(element).perform正是 Watir 中的hover方法所做的。这就是为什么你会得到相同的行为。
标签: ruby selenium-webdriver cucumber watir watir-webdriver