如何解决 htmlUnit WrapsDriver 错误
how to resolve htmlUnit WrapsDriver Error
我正在 运行 使用带有 selenium 3.13 jar 的 HtmlUnit 进行测试,浏览器成功启动,但之后它停止工作并出现以下错误。
> Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/WrapsDriver
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access0(Unknown Source)
at java.net.URLClassLoader.run(Unknown Source)
at java.net.URLClassLoader.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.toWebElement(HtmlUnitDriver.java:1211)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByName(HtmlUnitDriver.java:1341)
at org.openqa.selenium.By$ByName.findElement(By.java:284)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.call(HtmlUnitDriver.java:2024)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.call(HtmlUnitDriver.java:2020)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:1660)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:2020)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:798)
at com.directlegalmail.startup.Startup.scrapDates(Startup.java:89)
at com.directlegalmail.startup.Startup.main(Startup.java:63)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WrapsDriver
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)
... 22 more
有谁知道怎么解决的,我有
硒 3.13
和 htmlUnit 驱动程序 2.33
下面是我的代码
driver = new HtmlUnitDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait
(10000,TimeUnit.MILLISECONDS);
logMsg("Browser launched successfully");
driver.get("WebURL");
您需要使用带有依赖项的 htmlUnit 驱动程序,从 github 下载最新的 htmlunit-driver-x.xx.x-jar-with-dependencies.jar 其中包括 WrapsDriver
class.
关于您的测试环境的更多信息会让我们更清楚到底出了什么问题。
不过,我在您的代码块中没有发现任何重大问题。使用 Selenium v3.14 和 HtmlunitDriver v2.33.0 在调用 HtmlUnitDriver 时,您需要传递参数 true启用JavaScript可以使用以下解决方案:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class A_HtmlunitDriver_2_33_0 {
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new HtmlUnitDriver(true);
driver.manage().window().maximize();
driver.get("");
System.out.println("HtmlUnitDriver invoked");
driver.quit();
}
}
这种依赖关系的组合对我有用:
implementation("org.seleniumhq.selenium:selenium-java:3.141.59")
implementation("org.seleniumhq.selenium:selenium-api:3.141.59")
implementation("org.seleniumhq.selenium:htmlunit-driver:2.36.0")
您可以在此处查看 HtmlUnit 驱动程序版本 2.36.0
的兼容 Selenium 依赖项:https://github.com/SeleniumHQ/htmlunit-driver/blob/2.36.0/pom.xml
我正在 运行 使用带有 selenium 3.13 jar 的 HtmlUnit 进行测试,浏览器成功启动,但之后它停止工作并出现以下错误。
> Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/WrapsDriver
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access0(Unknown Source)
at java.net.URLClassLoader.run(Unknown Source)
at java.net.URLClassLoader.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.toWebElement(HtmlUnitDriver.java:1211)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByName(HtmlUnitDriver.java:1341)
at org.openqa.selenium.By$ByName.findElement(By.java:284)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.call(HtmlUnitDriver.java:2024)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.call(HtmlUnitDriver.java:2020)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:1660)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:2020)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:798)
at com.directlegalmail.startup.Startup.scrapDates(Startup.java:89)
at com.directlegalmail.startup.Startup.main(Startup.java:63)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WrapsDriver
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)
... 22 more
有谁知道怎么解决的,我有 硒 3.13 和 htmlUnit 驱动程序 2.33
下面是我的代码
driver = new HtmlUnitDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait
(10000,TimeUnit.MILLISECONDS);
logMsg("Browser launched successfully");
driver.get("WebURL");
您需要使用带有依赖项的 htmlUnit 驱动程序,从 github 下载最新的 htmlunit-driver-x.xx.x-jar-with-dependencies.jar 其中包括 WrapsDriver
class.
关于您的测试环境的更多信息会让我们更清楚到底出了什么问题。
不过,我在您的代码块中没有发现任何重大问题。使用 Selenium v3.14 和 HtmlunitDriver v2.33.0 在调用 HtmlUnitDriver 时,您需要传递参数 true启用JavaScript可以使用以下解决方案:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class A_HtmlunitDriver_2_33_0 {
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new HtmlUnitDriver(true);
driver.manage().window().maximize();
driver.get("");
System.out.println("HtmlUnitDriver invoked");
driver.quit();
}
}
这种依赖关系的组合对我有用:
implementation("org.seleniumhq.selenium:selenium-java:3.141.59")
implementation("org.seleniumhq.selenium:selenium-api:3.141.59")
implementation("org.seleniumhq.selenium:htmlunit-driver:2.36.0")
您可以在此处查看 HtmlUnit 驱动程序版本 2.36.0
的兼容 Selenium 依赖项:https://github.com/SeleniumHQ/htmlunit-driver/blob/2.36.0/pom.xml