" HasInputDevices"位于" / org / openqa / selenium / interaction"但它仍在关注" / org / openqa / selenium /"

时间:2014-03-31 14:06:03

标签: java maven selenium-webdriver

我想在远程WebDriver服务器上Chrome上运行Ubuntu个测试用例。我已经在该服务器上安装了最新的Chrome,但是当我使用它时,我已经收到了这些错误:

System.setProperty("webdriver.chrome.driver","/usr/bin/chromedriver");
driver = new ChromeDriver();

ERROR1:
The driver is not executable: /usr/bin/chromedriver要纠正我使用sudo 777 chromedriver使其可执行,然后我得到了 误差2:

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally要解决此问题,我已将selenium jar dependencies更新为2.40.0,从那时起,我一直在寻找 误差3:
java.lang.NoClassDefFoundError: org/openqa/selenium/HasInputDevices
查询:现在我知道HasInputDevices已移至org/openqa/selenium/Interactions/,为什么它仍在寻找旧目录路径org/openqa/selenium/HasInputDevices。如何让它找到它的实际目录。
1.我已更新依赖项。
2。我已尝试使用mvn install,以便下载pom.xml中写入的内容,但查看旧目录。
如何解决此错误,我不知道#39;想要降级selenium API,因为Chrome会意外退出。

3 个答案:

答案 0 :(得分:1)

遇到类似的问题,得到ClassCastException,其中HasInputDevices与FirefoxDriver不兼容。

通过将导入更改为另一个包来解决: 发件人

  

import org.openqa.selenium.Mouse;

  

import org.openqa.selenium.interactions.Mouse;

我遇到的确切错误堆栈是:

  

java.lang.ClassCastException:org.openqa.selenium.firefox.FirefoxDriver无法强制转换为org.openqa.selenium.interactions.HasInputDevices。

答案 1 :(得分:1)

我有同样的问题,下一步要解决的方法是: 从POM.xml中删除所有未使用的依赖项 例如,如果你只使用FirefoxDriver而在POM.xml中有另一个(Chrome,Common,remote)删除它们

答案 2 :(得分:0)

我找到了适合我的解决方案。我使用的依赖项对selenium-remote-driver版本2.34.0具有传递依赖性,删除此依赖项并且它将起作用。这种依赖性是:

<dependency>
 <groupId>com.github.detro.ghostdriver</groupId>
 <artifactId>phantomjsdriver</artifactId>
 <version>1.1.0</version>
</dependency>

<dependency>
<groupId>com.github.detro.ghostdriver</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.0.4</version>
</dependency>