Selenium Phantomjs driver - java.lang.NoSuchMethodError: org.openqa.selenium.os.CommandLine.find(Ljava/lang/String;)Ljava/lang/String;
Selenium Phantomjs driver - 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>
对于 PhantomJSDriver (GhostDriver),您需要添加以下 Maven 依赖项:
<dependency>
<groupId>com.github.detro</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.4.0</version>
</dependency>
此外,使用 phantomjs
二进制文件的绝对路径更新 System.setProperty
行,如下所示:
File path=new File("C:\path\\to\phantomjs-x.x.x-windows\bin\phantomjs.exe");
System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
WebDriver driver= new PhantomJSDriver();
driver.navigate().to("https://www.google.co.in/");
注意: 您可以在 IDE 中清理您的项目并仅使用 Selenium-Java Clients
依赖项。
我厌倦了将 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>
对于 PhantomJSDriver (GhostDriver),您需要添加以下 Maven 依赖项:
<dependency>
<groupId>com.github.detro</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.4.0</version>
</dependency>
此外,使用 phantomjs
二进制文件的绝对路径更新 System.setProperty
行,如下所示:
File path=new File("C:\path\\to\phantomjs-x.x.x-windows\bin\phantomjs.exe");
System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
WebDriver driver= new PhantomJSDriver();
driver.navigate().to("https://www.google.co.in/");
注意: 您可以在 IDE 中清理您的项目并仅使用 Selenium-Java Clients
依赖项。