java.lang.IllegalAccessError : tried to access method com. google.common.util.concurrent.SimpleTimeLimiter 与 Selenium ChromeDriver Chrome 与 Java

标签 java selenium google-chrome selenium-webdriver selenium-chromedriver

我的 Chrome 版本是 75.0.3770.142,我在代码中使用 ChromeDriver 75.0.3770.90 并具有以下 pom 依赖项

   <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>3.5.3</version>
   </dependency>

当我尝试运行测试时,chromedriver 无法加载。它给出以下错误

java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter.<init>(Ljava/util/concurrent/ExecutorService;)V from class org.openqa.selenium.net.UrlChecker
    at org.openqa.selenium.net.UrlChecker.<init>(UrlChecker.java:67) ~[selenium-remote-driver-2.53.1.jar:na]
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:175) ~[selenium-remote-driver-2.53.1.jar:na]
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:166) ~[selenium-remote-driver-2.53.1.jar:na]
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) ~[selenium-remote-driver-2.53.1.jar:na]
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:644) ~[selenium-remote-driver-2.53.1.jar:na]
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) ~[selenium-remote-driver-2.53.1.jar:na]
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) ~[selenium-remote-driver-2.53.1.jar:na]
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144) ~[selenium-remote-driver-2.53.1.jar:na]
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:170) ~[selenium-chrome-driver-2.53.1.jar:na]
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:138) ~[selenium-chrome-driver-2.53.1.jar:na]
    at com.bfwg.service.impl.TestSuiteServiceImpl.loadWebDriver(TestSuiteServiceImpl.java:120) ~[classes/:na]
    at com.bfwg.service.impl.TestSuiteServiceImpl.execute(TestSuiteServiceImpl.java:86) ~[classes/:na]
    at com.bfwg.service.impl.TestSuiteServiceImpl$$FastClassBySpringCGLIB$$517eb5f7.invoke(<generated>) ~[classes/:na]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669) ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
    at 

Starting ChromeDriver 75.0.3770.90 (a6dcaf7e3ec6f70a194cc25e8149475c6590e025-refs/branch-heads/3770@{#1003}) on port 23065
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.

最佳答案

此错误消息...

java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter.<init>(Ljava/util/concurrent/ExecutorService;)V from class org.openqa.selenium.net.UrlChecker

...意味着 ChromeDriver 无法启动/生成新的 WebBrowser,即 Chrome 浏览器 session 。

您的主要问题是您使用的二进制文件版本之间不兼容,如下所示:

  • 您正在使用 chromedriver=75.0
  • 您的 Selenium 客户端版本是 2017-08-29T12:42:44.417Z3.5.3,几乎是 2 老了几岁。
  • 我们不知道您的JDK 版本

因此,Selenium Client v3.5.3ChromeDriver v2.46 之间存在明显的不匹配。

<小时/>

解决方案

  • JDK 升级到当前级别 JDK 8u212 .
  • Selenium 升级至当前级别 Version 3.141.59 .
  • ChromeDriver 已更新为当前 ChromeDriver v76.0级别。
  • Chrome 已更新至当前 Chrome 版本 76.0 级别。 (根据 ChromeDriver v76.0 release notes )
  • 通过IDE清理您的项目工作区,并仅使用所需的依赖项重建项目。
  • 如果您的基本Web 客户端版本太旧,请将其卸载并安装最新的 GA 和已发布版本的Web 客户端
  • 非root用户身份执行@Test

You can find a detailed analysis on com.google.common.util.concurrent.SimpleTimeLimiter in the discussion java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter. when using Selenium-Java 3.5.1 or above

关于java.lang.IllegalAccessError : tried to access method com. google.common.util.concurrent.SimpleTimeLimiter 与 Selenium ChromeDriver Chrome 与 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57277355/

相关文章:

android - 可安装的网络应用程序在 Android 上安装时不使用图标

java - 如何使用 lambda 或流从包含另一个对象列表列表的对象列表中迭代并获取对象

java - Hibernate异常: Could not determine a type for class exception with spring-data-jpa native query for postgresql

java - 尝试在 java 中使用首选项但需要管理员权限(需要在 Windows 和 MAC 上工作)

javascript - Selenium Firefox 与 Python3 FirefoxProfile.set_preference() 被忽略

javascript - 无法单击 selenium webdriver 中的剑道下拉菜单

javascript - 从 URL 捕获顶级域名时出现问题

javascript - 为什么以下 javascript 在 Internet Explorer 和 Mozilla 中不起作用,但在 google chrome 中工作正常?

在 Git for Windows 控制台中使用时,java.lang.System.console() 返回 null

javascript - 如何使用 chrome.tabs.insertCSS 添加多个样式表?