IllegalAccessError thrown by new ChromeDriver() on OSX (Java)

≯℡__Kan透↙ 提交于 2019-12-09 14:10:33

问题


Getting this under Eclipse straight out of the gate.

Code:

    System.setProperty("webdriver.chrome.driver" ,  "/path/to/selenium/chromedriver");
    WebDriver driver = new ChromeDriver();

Throws Exception:

Exception in thread "main" 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)
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:190)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:181)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:137)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:184)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:171)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:124)

OSX 10.12 Selenium 3.4 ChromeDriver 2.31


回答1:


Setting this back to 22.0 helped for me.

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>22.0</version>
    </dependency>



回答2:


Setting this back to 22.0 helped for me.

Version 22.0 didn't fix the problem for me, but 19.0 did.

compile group: 'com.google.guava', name: 'guava', version: '19.0'



回答3:


the main problem is you have a jar conflict.

selenium has compile dependency on guava, you can find this at: https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver/3.141.0

if you project has another version of guava, it may use wrong guava version.

to exclude duplicate dependency in maven, you can add right guava version explicitly, in this case:

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>25.0-jre</version>
</dependency>


来源:https://stackoverflow.com/questions/45643956/illegalaccesserror-thrown-by-new-chromedriver-on-osx-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!