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
IllegalAccessError thrown by new ChromeDriver() on OSX (Java)
提问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
if you project has another version of guava
, it may use wrong guava
version.
如果您的项目有另一个版本的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>