Firefox" Mouseover" Windows上的Selenium Ruby绑定中的问题

时间:2015-02-24 19:48:30

标签: ruby selenium

我一直在努力将鼠标悬停几天,并在这个主题上发现了几个主题,但没有一个有帮助。我已经尝试了几十种不同的方法,并且还修改了我的代码,以便与这里的示例更加同步,尤其是Dave Haeffner的建议。目前的代码如下:

Selenium::WebDriver::Wait.new(timeout: 2).until do
  @driver.find_element(link: "ADMIN").displayed?
end
@driver.action.move_to(@driver.find_element(link: "ADMIN")).perform
Selenium::WebDriver::Wait.new(timeout: 2).until do
  @driver.find_element(link: "ORGANIZATION").displayed?
end
driver.action.move_to(@driver.find_element(link: "ORGANIZATION")).perform
Selenium::WebDriver::Wait.new(timeout: 2).until do
  @driver.find_element(link: "TEAMS").displayed?
end
@driver.find_element(link: "TEAMS").click
end

在mac上,这段代码运行正常。但是在Windows上,它会产生:

Failure/Error: @driver.action.move_to(@driver.find_element(link: "ADMIN")).perform
Selenium::WebDriver::Error::InvalidElementStateError:
  Cannot perform native interaction: Could not load native events component.

我确信元素访问是正常的,因为如果我将第一个鼠标悬停更改为单击操作,则效果很好。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您需要使用Firefox版本31.0.6。之后的Firefox版本没有本机事件支持。如果您需要使用更高版本的Firefox,那么只需确保您的测试操作都是非本机的,例如使用JavascriptExecutor创建悬停(而不是依赖于firefox驱动程序中的本机事件)。