我正在尝试使用Java中的phantomjsdriver来构建Webspider。我使用Selenium版本3.11.0,PhantomJS 2.1.1和phantomjsdriver版本1.2.1。 当我执行我的代码时,我收到以下错误消息。
线程“main”中的异常java.lang.NoSuchMethodError:org.openqa.selenium.os.CommandLine.find(Ljava / lang / String;)Ljava / lang / String;
package Masterarbeit.Crawler;
import java.io.File;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
public class Test {
public String Test(){
File path=new File("/usr/local/bin/phantomjs");
System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
WebDriver driver = new PhantomJSDriver();
return "successful";
}
}
我的操作系统是Linux Mint 18 Sarah,有人知道这个的原因吗?
答案 0 :(得分:1)
几天前, PhantomJSDriver 与 selenium-server-standalone-vvvjar 捆绑在一起发布,因此我们能够解析方法 {{1来自 selenium-server-standalone-xyzjar 的<{1}}
但是现在, selenium-server-standalone-v.v.v.jar 不会将jar捆绑为 PhantomJSDriver 依赖项。因此,您必须从(PhantomJSDriver()
)获取 phantomjsdriver 的版本,该版本似乎与最新的selenium版本保持同步。
下载 phantomjsdriver-1.4.4.jar 并将其添加到项目。
使用以下代码块并执行import org.openqa.selenium.phantomjs.PhantomJSDriver;
:
com.codeborne:phantomjsdriver:jar:1.4.4
重要: @Test
仍然通过 import java.io.File;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
public class phantomJS_launch {
public static void main(String[] args) {
File path=new File("C:\\Utility\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
WebDriver driver= new PhantomJSDriver();
driver.get("https://www.google.co.in");
System.out.println(driver.getTitle());
driver.quit();
}
}
控制台输出:
PhantomJSDriver()
您可以在此处找到有关How can I resolve my class from a different jar with same structure like another
的详细讨论