如何从具有相同结构的不同jar中解析我的类

Deb*_*anB 7 java selenium jar classnotfoundexception phantomjs

如何从具有相同结构的不同jar中解析我的类

注意:虽然有问题的罐子中含有这个词,但这里的问题与没有直接关系

直到几天前,PhantomJSDriver一起发布了selenium-server-standalone-v.v.v.jar.所以我的班级工作正常:

import java.io.File;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;

public class A_PhantomJS
{
    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.manage().window().maximize();
          driver.get("https://www.google.co.in");
    }
}
Run Code Online (Sandbox Code Playgroud)

现在selenium-server-standalone-v.v.v.jar不会将jar 包装PhantomJSDriver依赖项.

所以我已经下载了jar phantomjsdriver-1.1.0.jar并将其作为外部jar添加到我的项目中.

您可以看到它的结构phantomjsdriver-1.1.0.jar与捆绑时的结构类似selenium-server-standalone-v.v.v.jar

PhantomJSDriver

现在,虽然我的班级通过以下方式解决:

import org.openqa.selenium.phantomjs.PhantomJSDriver;
Run Code Online (Sandbox Code Playgroud)

但我面临java.lang.NoClassDefFoundError如下运行时异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/browserlaunchers/Proxies
    at org.openqa.selenium.phantomjs.PhantomJSDriverService.createDefaultService(PhantomJSDriverService.java:178)
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:99)
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:89)
    at demo.A_PhantomJS.main(A_PhantomJS.java:15)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.browserlaunchers.Proxies
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 4 more
Run Code Online (Sandbox Code Playgroud)

第15行是:

WebDriver driver= new PhantomJSDriver();
Run Code Online (Sandbox Code Playgroud)

根据我org.openqa.selenium.browserlaunchers.Proxies在phantomjsdriver-1.1.0.jar中搜索到的错误无法找到任何线索.

的NoClassDefFoundError

有人可以帮帮我吗?

Deb*_*anB 2

最后,西蒙·斯图尔特( Simon Stewart)在用户组中回答了这个问题。

回答There's a version of phantomjsdriver ('com.codeborne:phantomjsdriver:jar:1.4.4') that appears to be kept up to date with latest selenium releases. I'd suggest using that.

这是西蒙评论的快照:

西蒙·斯图尔特

这是工作解决方案: PhantomJSDriver_已解决