获取 HTMLUnit 驱动程序异常 (java.lang.ClassNotFoundException) - w Selenium 和 Java

Getting HTMLUnit driver exception (java.lang.ClassNotFoundException) - w Selenium and Java

Complete Stack Trace snapshot here 我是 Headless 浏览器概念的新手。我正在尝试验证页面 使用 Selenium 针对大量记录验证几个 webElement 值。

我想使用 HTMLUnit 驱动程序(或任何无头浏览器驱动程序)来获取此信息,但是当我启动 HTMLUnit 驱动程序时出现 Class 未找到异常。下面是我正在使用的 pom 和代码。感谢你的帮助。谢谢!

pom.xml:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-core</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-picocontainer</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.picocontainer</groupId>
<artifactId>picocontainer</artifactId>
<version>2.15</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.9.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.141.59</version>
</dependency>   
<dependency>
<groupId>com.vimalselvam</groupId>
<artifactId>cucumber-extentsreport</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.1.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>   
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-htmlunit-driver</artifactId>
<version>2.52.0</version>
</dependency>
</dependencies>

HTMLunit 驱动程序代码:

public WebDriver inithtmlUnitDriver() {
// To declare and initialize HtmlUnitDriver
WebDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME);
// Set implicit wait 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
return driver;
}

您正在尝试混合使用不同的 Selenium 版本:

<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>

<version>3.9.1</version>

</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>

<version>3.141.59</version>

</dependency>   

您应该保持一致,使用 3.141.59 并将 HTML 单元驱动程序的依赖项更改为当前版本。他们更改了工件以匹配 HTML 个单元版本。

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>htmlunit-driver</artifactId>
  <version>2.34.0</version>
</dependency>

这应该可以解决您的依赖问题。