2012-08-02 90 views
2

我似乎无法让actionbuilder在selenium webdriver中工作。我试图自动化一个使用Javascript的菜单。我需要将鼠标悬停然后移动,然后单击鼠标悬停后出现的链接。ruby​​ + selenium-webdriver actionbuilder

$driver.find_element(:id, "top_menu").find_elements(:tag_name, "a").each{ |a| 
    if a.attribute('href').include? "javascript" 
    then w = a 
    $driver.action.move_to(w).perform 
    break 
    end 
} 

我意识到,我对这个元素狩猎是有些模糊,而不是一个最佳实践。我已经为这个元素请求了一个id。任何建议如何使用动作建立者或更好的方式来自动化鼠标移动将不胜感激。

这是我得到的错误。
`generateErrorForNativeEvents':无法执行本地交互:无法加载本地事件组件。 (硒:: webdriver的::错误:: InvalidElementStateError

感谢

回答

1

并不积极,但我想更新到Firefox 14.0.1可能已经打破它。我们的测试刚刚分手了。我还在工作在修复

UPDATE:。 呀,我降级到Firefox 13.0.1和我的测试,现在正在

+0

嗯,这将是一个很大的巧合。我第一次使用它,它已经坏了。谢谢你的提示。我会尝试并回复你。 – Zach 2012-08-06 21:55:11

+0

或者我升级了Selenium Webdriver gem 2.25.0这似乎也是个伎俩 – Zach 2012-08-06 23:14:55

0

我面临InvalidElementStateError的同样的问题:无法执行原生交互:无法加载本地事件成分当我试图双击一个元素

当我加入以下行

问题解决了

配置=硒:: ::的webdriver火狐:: Profile.new

profile.native_events =假

能力=硒:: ::的webdriver远程:: Capabilities.firefox(:firefox_profile =>配置文件)

@@司机=硒:: WebDriver.for:火狐,:desired_capabilities =>功能

注: - 一旦你这样做,Firefox测试现在将通过Javascript事件触发模拟用户交互而不是本地点击。这有其优点和缺点。希望能帮助到你!