java.lang.NoSuchFieldError: INSTANCE - WebDriver

java.lang.NoSuchFieldError: INSTANCE - WebDriver

当我尝试执行测试时收到以下错误消息。 pom 文件中的版本号没有任何变化,因此我们可以排除与依赖相关的问题。

java.lang.NoSuchFieldError: INSTANCE

at org.apache.http.conn.ssl.SSLConnectionSocketFactory.(SSLConnectionSocketFactory.java:144) at org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:71)

driver = new FirefoxDriver(new FirefoxBinary(new File(FF_EXEPATH)), profile);

你肯定是版本不匹配。

请确保您解析为

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
     <artifactId>httpclient</artifactId>
    <version>4.5.2</version>
</dependency>

尝试检查这是否是根本原因的最简单方法是明确添加上述依赖项并查看是否有帮助。 Selenium 依赖于 httpclient 4.5.2.

只是为了检查您要解析的 httpclient 版本,您可以尝试 运行 mvn dependency:tree | grep 'httpclient'。您应该会看到如下所示的内容:

09:40 $ mvn dependency:tree | grep 'httpclient'
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.5.2:compile
✔ ~/githome/PlayGround/testbed