【发布时间】:2018-06-19 22:19:35
【问题描述】:
如何从另一个结构相同的不同 jar 中解析我的类
注意:虽然有问题的罐子包含单词 selenium 但这里的问题与 selenium
没有直接关系
直到几天前 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");
}
}
现在selenium-server-standalone-v.v.v.jar 不会为 PhantomJSDriver 依赖项捆绑 jar。
所以我已经下载了 jar phantomjsdriver-1.1.0.jar 并作为外部 jar 添加到我的项目中。
您可以看到phantomjsdriver-1.1.0.jar 的结构与之前与selenium-server-standalone-v.v.v.jar 捆绑时的结构相似
现在,虽然我的班级通过以下方式解决:
import org.openqa.selenium.phantomjs.PhantomJSDriver;
但我面临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
第 15 行是:
WebDriver driver= new PhantomJSDriver();
根据错误,我在 phantomjsdriver-1.1.0.jar 中搜索 org.openqa.selenium.browserlaunchers.Proxies 找不到任何线索。
谁能帮帮我?
【问题讨论】:
标签: java selenium jar phantomjs classnotfoundexception