java.lang.IllegalAccessError:尝试访问方法com.google.common.util.concurrent.SimpleTimeLimiter。 使用Selenium-Java 3.5.1或更高版本时

我想知道是否有人可以告诉我为什么当我使用Selenium-Java 3.5.1或更高版本时出现以下错误 –

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

使用您提供的有关测试环境和错误详细信息的信息,当Selenum网格节点似乎已成功注册到Selenum Grid Hub并且还通过以下方式确认时,会出现错误com.google.common.util.concurrent.SimpleTimeLimiter网格控制台,但在请求会话时,观察到以下错误:

 org.openqa.selenium.WebDriverException: com.google.common.util.concurrent.SimpleTimeLimiter.create(Ljava/util/concurrent/ExecutorService;)Lcom/google/common/util/concurrent/SimpleTimeLimiter; 

Selenium-Grid-Extras Hub (1.12.16)发生此错误,因为包装到JAR中的selenium和番石榴依赖性之间存在不一致

此问题已通过#367解决并合并,使用Selenium v​​3.8.1将解决您的问题。

确保两点为:

  • Selenium Grid Extras版本大于(或等于)1.12.17
  • guava依赖项已更新。

检查POM.XML文件,你将有2个“selenium-chrome-driver”依赖项。 所以,那里的依赖性和它都是混淆的,需要采取并给你exception。 我的人正在这个改变之后工作。

在我之前的pom.xml中,这是条目:

   org.seleniumhq.selenium selenium-java 2.53.0  

以下错误被抛出,

错误:java.lang.IllegalAccessError:尝试从类org.openqa.selenium.net.UrlChecker访问方法com.google.common.util.concurrent.SimpleTimeLimiter。(Ljava / util / concurrent / ExecutorService;)V

然后我用最新版本更新了POM:

  org.seleniumhq.selenium selenium-java 3.14.0  

我没有再次看到错误。 希望这可以帮助。