java - 我正在尝试使用 selenium 和 maven 依赖项启动 chrome 浏览器,遇到类似 java.lang.NoSuchFieldError: INSTANCE 的问题
问题描述
我正在使用以下版本的 selenium java 以及服务器和黄瓜依赖项。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.47.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.47.1</version>
</dependency>
<dependency>
<groupId>net.masterthought</groupId>
<artifactId>cucumber-reporting</artifactId>
<version>0.1.0</version>
</dependency>
info.cukes cucumber-java 1.1.8
<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.1.8</version>
</dependency>
com.theoryinpractise cucumber-testng-factory 1.0.1
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-html</artifactId>
<version>0.2.6</version>
</dependency>
但是,如果我在 ant 中使用相同版本的 jar 文件并尝试启动 chrome 浏览器,它正在工作。如果我在 Maven 中使用相同版本的依赖项,则启动 chrome 浏览器会出现问题。
Maven出现以下错误:
/* java.lang.NoSuchFieldError: org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:52) 处 org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:56) 处的实例org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:46) 在 org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.(ManagedHttpClientConnectionFactory.java:72) 在 org.apache.http.impl.conn。 org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.(ManagedHttpClientConnectionFactory.java:59) 上的 ManagedHttpClientConnectionFactory.(ManagedHttpClientConnectionFactory.java:84)。487) 在 org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:136) 在 org.apache.http.impl .conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:112) 在 org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:74) 在 org.openqa.selenium.remote.internal.HttpClientFactory.(HttpClientFactory.java :57) 在 org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.getDefaultHttpClientFactory(ApacheHttpClient.java:252) 在 org.openqa 的 org.openqa.selenium.remote.internal.HttpClientFactory.(HttpClientFactory.java:60) .selenium.remote.internal.ApacheHttpClient$Factory。(ApacheHttpClient.java:229) 在 org.openqa.selenium.remote.HttpCommandExecutor.getDefaultClientFactory(HttpCommandExecutor.java:96) 在 org.openqa.selenium.remote.HttpCommandExecutor.(HttpCommandExecutor.java:70) 在 org.openqa.selenium .remote.HttpCommandExecutor.(HttpCommandExecutor.java:58) 在 org.openqa.selenium.remote.service.DriverCommandExecutor.(DriverCommandExecutor.java:49) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:170)在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:138))*/58) 在 org.openqa.selenium.remote.service.DriverCommandExecutor.(DriverCommandExecutor.java:49) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:170) 在 org.openqa.selenium.chrome.ChromeDriver .(ChromeDriver.java:138))*/58) 在 org.openqa.selenium.remote.service.DriverCommandExecutor.(DriverCommandExecutor.java:49) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:170) 在 org.openqa.selenium.chrome.ChromeDriver .(ChromeDriver.java:138))*/
解决方案
我使用了以下依赖项
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>25.0-jre</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-exec -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-exec</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.28.0</version>
</dependency>
推荐阅读
- javascript - 检查网址中是否存在术语 - javascript
- ssis - 通过 SSIS 的 HTTP-GET
- node.js - 如何在 NodeJS 中使用 ORM
- google-app-engine - 来自 App Engine 的 Google Cloud Storage 对象读/写操作
- c# - IIS 池回收后的对话参考(并发字典变为空白)
- python - 如何在 tkinter 中的文本变量前面插入“$”符号
- python - 为什么在 python 3 中出现“pop index out of range”错误?
- arrays - 数组中有多少重复的数字
- java - 我可以将 Spring Batch 配置更改为静态运行吗?
- python - 如何在数据框中删除一个空行