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

时间:2019-04-03 15:47:00

标签: selenium htmlunit

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

我想使用HTMLUnit驱动程序(或任何无头浏览器驱动程序)来获取此信息,但是启动HTMLUnit驱动程序时出现Class not found异常。以下是我正在使用的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;
}

1 个答案:

答案 0 :(得分:2)

您正在尝试混合使用不同的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>

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