【问题标题】:java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter with Selenium ChromeDriver Chrome with Javajava.lang.IllegalAccessError:尝试使用 Selenium ChromeDriver 使用 Java 访问方法 com.google.common.util.concurrent.SimpleTimeLimiter
【发布时间】:2019-12-08 04:21:58
【问题描述】:

我的 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.

【问题讨论】:

  • selenium 3.5.3 太旧了

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


【解决方案1】:

此错误消息...

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 无法启动/生成新的 WebBrowserChrome 浏览器 会话。

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

  • 您正在使用 chromedriver=75.0
  • 您的 Selenium Client 版本是 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

您可以在讨论java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter. when using Selenium-Java 3.5.1 or above

中找到关于com.google.common.util.concurrent.SimpleTimeLimiter的详细分析

【讨论】:

  • 我将 selenium 更改为 3.141 但仍然是同样的问题。我的 jdk 版本。但我可以在 maven 树中看到一些问题,它说 selenium chrome 驱动程序为 2.53。
  • 最后我能够通过将 springboot 升级到 2.1.6.RELEASE 来解决这个问题。当我有 1.5 它下载旧的 chromedriver 并不断给出上述错误。
猜你喜欢
  • 1970-01-01
  • 2011-10-27
  • 2016-05-31
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-20
相关资源
最近更新 更多