Java Htmlunitdriver与Rest-Assured API冲突
我试图使用Htmlunitdriver,但它看起来与Rest-Assured API冲突 如果我从pom.xml中删除rest-assured库,下面的代码可以正常工作 HtmlUnitDriver=新的HtmlUnitDriver() 如果我将rest assured库添加到pom.xml中,将引发一个异常,如下所示:Java Htmlunitdriver与Rest-Assured API冲突,java,maven,selenium-webdriver,rest-assured,htmlunit-driver,Java,Maven,Selenium Webdriver,Rest Assured,Htmlunit Driver,我试图使用Htmlunitdriver,但它看起来与Rest-Assured API冲突 如果我从pom.xml中删除rest-assured库,下面的代码可以正常工作 HtmlUnitDriver=新的HtmlUnitDriver() 如果我将rest assured库添加到pom.xml中,将引发一个异常,如下所示: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/cookie/Cookie
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/cookie/CookieSpecProvider
at com.gargoylesoftware.htmlunit.WebClient.createWebConnection(WebClient.java:1907)
at com.gargoylesoftware.htmlunit.WebClient.<init>(WebClient.java:134)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.newWebClient(HtmlUnitDriver.java:303)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.createWebClient(HtmlUnitDriver.java:277)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.<init>( HtmlUnitDriver.java:148)
at dfbhdfbhdfbh.htmlunittest.main(htmlunittest.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.http.cookie.CookieSpecProvider
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.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)
... 6 more
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/http/cookie/CookieSpecProvider
在com.gargoylesoftware.htmlunit.WebClient.createWebConnection(WebClient.java:1907)上
在com.gargoylesoftware.htmlunit.WebClient上(WebClient.java:134)
位于org.openqa.selenium.htmlunit.HtmlUnitDriver.newWebClient(HtmlUnitDriver.java:303)
位于org.openqa.selenium.htmlunit.HtmlUnitDriver.createWebClient(HtmlUnitDriver.java:277)
位于org.openqa.selenium.htmlunit.HtmlUnitDriver.(HtmlUnitDriver.java:148)
位于dfbhdffbh.htmlunittest.main(htmlunittest.java:15)
原因:java.lang.ClassNotFoundException:org.apache.http.cookie.CookieSpecProvider
位于java.net.URLClassLoader$1.run(未知源)
位于java.net.URLClassLoader$1.run(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
... 还有6个
下面是依赖项列表
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.1</version>
</dependency>
<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>rest-assured</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.48.2</version>
<exclusions>
<exclusion>
<artifactId>commons-codec</artifactId>
<groupId>commons-codec</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.48.2</version>
</dependency>
</dependencies>
org.testng
testng
6.8.1
com.jayway.restassed
放心
2.3.1
org.seleniumhq.selenium
硒服务器
2.48.2
通用编解码器
通用编解码器
org.seleniumhq.selenium
硒爪哇
2.48.2
我不知道该怎么处理这件事。
我尝试使用不同的Selenium版本(2.24.1),它解决了这个异常。但是它给我带来了我试图访问的网页的问题。
另外,如果我创建一个Java项目并添加selenium和rest assured JAR,我看不出有任何问题
我相信这与Maven依赖性有关。我找到了一个解决方案- 将以下代码添加到pom文件解决了该问题-
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</dependencyManagement>
org.apache.httpcomponents
httpclient
4.5.1
公地io
公地io
2.4
基本上,SeleniumHTML单元需要上述依赖项的更高版本,因此添加此代码将达到此目的