java - Selenium Phantomjs 驱动程序 - java.lang.NoSuchMethodError: org.openqa.selenium.os.CommandLine.find(Ljava/lang/String;)Ljava/lang/String;
问题描述
我厌倦了将 Phantomjs 驱动程序实现到 Selenium 测试,但它抛出了这个错误。java.lang.NoSuchMethodError: org.openqa.selenium.os.CommandLine.find(Ljava/lang/String;)Ljava/lang/String; Phantom 库是https://mvnrepository.com/artifact/org.jboss.arquillian.extension/arquillian-phantom-driver版本 1.2.1.1,Java 版本是 1.8 实现如下:
if( driver == null )
{
if( which == CHROME )
{
System.setProperty("webdriver.chrome.driver", which);
driver = new ChromeDriver();
}
else if ( which == PHANTOM )
{
System.setProperty("webdriver.phantomjs.driver", which);
driver = new PhantomJSDriver();
}
}
我应该怎么做才能强制它工作?它是正确的幻影库吗?谢谢。
解决方案
这种方法对我有用:
添加此依赖项:
<dependency> <groupId>com.codeborne</groupId> <artifactId>phantomjsdriver</artifactId> <version>1.4.4</version> <scope>compile</scope> </dependency>
添加到您的代码中:
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("phantomjs.binary.path", "pathToBin"); driver = new PhantomJSDriver(capabilities);
注意:我使用的是 Selenium 版本 3.8.1
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.8.1</version>
</dependency>
推荐阅读
- php - 使用 eloquent 从多对多关系中获取数据
- javascript - 使用 marker.remove() 清除并再次添加标记
- html - 带有 2 个图像和一个分隔符的 Div
- javascript - 自动播放随机 youtube 视频并非每次都有效
- visual-studio-code - 我可以像 Atom 一样通过 USB 通过 REPL 连接来通过 VSCode 连接 ESP32 吗?
- openstreetmap - 获取城市中所有街道的正确立交桥涡轮查询是什么?
- bash - 转义斜杠和制表符
- c# - Unity 3D:如何存储和替换网格中的预制件?
- c - 如何从“/proc/[pid]/status”文件夹中计算 C 中进程的内存使用量?
- reactjs - 重定向到 https 安全在 react-router 中不起作用