org.openqa.selenium.InvalidElementStateException:无法执行本机交互:无法加载本机事件组件

时间:2012-03-20 22:17:12

标签: java selenium webdriver selenium-firefoxdriver

使用版本2.15.0和Firefox9时,我遇到了此错误 在Windows 7中使用Java绑定,在更新FF9到FF10之后。我试图禁用 网上建议的本地事件,但没有运气。在线搜索了更多解决方案后,我将WebDriver更新到2.17.0版。问题已得到解决,我有时也没有遇到同样的问题。我再次升级到最新版本的WebDriver,2.19.0,问题解决了。现在我在将FF10更新到11之后面临同样的问题。我升级到2.20,但问题占了上风。我禁用了原生事件如下,但我仍然得到错误。

使用Java:

FirefoxProfile profile = new FirefoxProfile(); 
profile.setPreference("webdriver_enable_native_events", false); 
driver = new FirefoxDriver(profile); 

Stacktrace(当我尝试移动鼠标悬停在元素上时):

org.openqa.selenium.InvalidElementStateException: Cannot perform native interaction: Could not load native events component. 
Command duration or timeout: 30.07 seconds
Build info: version: '2.20.0', revision: '16008', time: '2012-02-28 15:00:40'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_31' 
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java: 170) 
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.­java: 123) 
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java: 438) 
at org.openqa.selenium.remote.ExecuteMethod.execute(ExecuteMethod.java: 47) 
at org.openqa.selenium.remote.RemoteMouse.mouseMove(RemoteMouse.java: 89) 
at org.openqa.selenium.interactions.MoveMouseAction.perform(MoveMouseAction.ja­va: 37) 
at org.openqa.selenium.interactions.CompositeAction.perform(CompositeAction.ja­va: 32) 
at org.openqa.selenium.interactions.Actions.perform(Actions.java:349) 
at com.requirementsLive.qa.utility.NavigateHelper.navigate_HoverPageTabs(Navig­ateHelper.java: 49) 

我在NavigateHelper中的代码:

WebElement hoverMenu = uiHelper.waitForElementPresent(By.id(tabLocator), 10); 
Actions hoverAction = new Actions(this.getDriver()); 
hoverAction.moveToElement(hoverMenu); 
hoverAction.perform(); ------> line that throws the error 

我错过了什么吗?在webdriver中是否有永久性修复 或者我们应该升级到最新的webdriver(只要有一个) 每次有FF的更新? (这次升级不起作用)。

感谢。

2 个答案:

答案 0 :(得分:5)

我建议使用firefox 9或10作为WebDriver 2.20.0或2.19.0尚未与最新版本的firefox完全兼容。

答案 1 :(得分:1)

Selenium 2.29.0发布时支持FF18(适用于原生事件)。以下是更新的链接:http://selenium.googlecode.com/git/rb/CHANGES

可能会更新到FF18,selenium-webdriver(2.29.0)可能会帮助您。