我想在远程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会意外退出。
答案 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>