OSX (Java) 上的 new ChromeDriver() 抛出的 IllegalAccessError

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/45643956/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 08:49:10  来源:igfitidea点击:

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

javaselenium-chromedriver

提问by Igor Urisman

Getting this under Eclipse straight out of the gate.

直接在 Eclipse 下得到这个。

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

OSX 10.12 硒 3.4 ChromeDriver 2.31

回答by Walter

Setting this back to 22.0 helped for me.

将其设置回 22.0 对我有帮助。

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

回答by maharr

Setting this back to 22.0 helped for me.

将其设置回 22.0 对我有帮助。

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

22.0 版没有解决我的问题,但 19.0 版解决了。

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

回答by u6856342

the main problem is you have a jar conflict.

主要问题是你有一个 jar 冲突。

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

selenium 对 guava 有编译依赖性,您可以在以下位置找到:https: //mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver/3.141.0

enter image description here

在此处输入图片说明

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

如果您的项目有另一个版本的guava,它可能会使用错误的guava版本。

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

要排除 maven 中的重复依赖项,您可以明确添加正确的番石榴版本,在这种情况下:

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