[WebDriver]解决报错:tried to access method com.google.common.util.concurrent.SimpleTimeLimiter

UI自动化发现报错:
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
报错截图如下:

[WebDriver]解决报错:tried to access method com.google.common.util.concurrent.SimpleTimeLimiter_第1张图片

问题出在guava 的新版本中

        
            com.google.guava
            guava
            25.0-jre
        

SimpleTimeLimiter的constructor被定义为private

[WebDriver]解决报错:tried to access method com.google.common.util.concurrent.SimpleTimeLimiter_第2张图片
25.0-jre版本中

Selenium的UrlChecker会通过constructor去new一个SimpleTimeLimiter对象,因此报错了


[WebDriver]解决报错:tried to access method com.google.common.util.concurrent.SimpleTimeLimiter_第3张图片
selenium包中

降低guava版本到19.0

        
            com.google.guava
            guava
            19.0
        

SimpleTimeLimiter的constructor被定义为public,问题解决

19.0

最后:guava版本升级后出现这个问题,降低版本即可解决,为什么我知道要降低guava版本到19.0?

因为查到UrlChecker所在jar包依赖guava版本是:


[WebDriver]解决报错:tried to access method com.google.common.util.concurrent.SimpleTimeLimiter_第4张图片

你可能感兴趣的:([WebDriver]解决报错:tried to access method com.google.common.util.concurrent.SimpleTimeLimiter)