2

我似乎无法让 actionbuilder 在 selenium webdriver 中工作。我正在尝试自动化使用 Javascript 的菜单。我需要将鼠标悬停然后移动并单击鼠标悬停后出现的链接。

$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。任何关于如何使用 actionbuilder 或更好的方法来自动化鼠标移动的建议将不胜感激。

这是我得到的错误。
`generateErrorForNativeEvents':无法执行本机交互:无法加载本机事件组件。(Selenium::WebDriver::Error::InvalidElementStateError

谢谢

4

2 回答 2

1

不是积极的,但我认为 Firefox 14.0.1 的更新可能已经破坏了它。我们的测试也失败了。我仍在努力修复。

更新:是的,我降级到 Firefox 13.0.1,我的测试现在正在运行。

于 2012-08-06T17:44:15.140 回答
0

我遇到了 InvalidElementStateError 的相同问题:无法执行本机交互:当我尝试双击元素时无法加载本机事件组件

当我添加以下行时问题已解决

profile = Selenium::WebDriver::Firefox::Profile.new

profile.native_events = false

能力 = Selenium::WebDriver::Remote::Capabilities.firefox(:firefox_profile => profile)

@@driver = Selenium::WebDriver.for :firefox, :desired_capabilities => 能力

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

于 2013-07-17T12:25:47.883 回答