首页 > 解决方案 > 我正在尝试使用 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))*/

标签: javamavenselenium

解决方案


我使用了以下依赖项

    <!-- 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>

推荐阅读