5

为了自动化其中一项测试,我必须执行拖放操作。因此,我尝试通过以下方式实现它:

driver.action.drag_and_drop(source, target).perform

但这会导致错误:

Selenium::WebDriver::Error::InvalidElementStateError: Cannot perform native interaction: Could not load native events component.

我在以下配置上运行了这个测试:

  1. 火狐 23.0.1
  2. Selenium WebDriver 2.35.0

我之所以选择上述组合,是因为更改日志显示 - 使用 Selenium WebDriver 2.35.0 和 Firefox 23,本机事件组件可以正常工作。

即使我使用了正确的 Firefox 和 Selenium WebDriver 版本,它还是会抛出错误。

查看stackoverflow,我可以看到同样的问题已经被问过好几次了。这些问题的答案如下:either downgrade/upgrade Firefox, Selenium WebDriver versions

每次升级 Firefox 或 Selenium WebDriver 版本时,用户都会面临这些问题。因此,用户查看更改日志并尝试找到 Firefox 和 WebDriver 的正确组合。(即使我遵循了它,我也遇到了问题)

我的问题是:

  1. 有没有最简单的方法可以帮助选择正确的 Firefox 和 Selenium WebDriver 版本?
  2. 或者是否有任何使用 Selenium 进行鼠标交互的解决方法?

这样我们就可以摆脱Cannot perform native interaction: Could not load native events component.错误。

4

1 回答 1

0

您还应该可以选择“手动”执行由拖放触发的 JS 函数,使用 driver.execute_script("JavaScript code here")。

于 2013-09-27T23:19:49.557 回答