selenium - 无法按照官方文档工作 Selenium java
问题描述
我已经阅读了 google 和 stackoverflow 中的所有答案/教程,我快要为此发疯了。我已经按照官方文档并尝试了不同版本的 chrome 和 chrome 驱动程序 => https://sites.google.com/a/chromium.org/chromedriver/downloads 我已经尝试过这个 => java.lang.IllegalAccessError: 试图访问方法 com.google.common.util.concurrent.SimpleTimeLimiter。使用 Selenium-Java 3.5.1 或更高版本时
但它不起作用。我尝试了几个 chrome - chormeDriver 版本,但总是出现相同的错误。
- 谷歌浏览器版本:73.0.3683.56
- Chrome 驱动程序版本:73.0.3683.20
Selenium-java 版本:org.seleniumhq.selenium:selenium-java:3.141.59
sudo chmod +x chromedriver
现在我创建了一个非常简单的测试:
System.setProperty("webdriver.chrome.driver", "/home/user/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.es/");
浏览器无法打开,我收到以下错误:
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:175)
at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:166)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:644)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:170)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:159)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:116)
at com.plfg.service.ChromeTest.testChromeEmail(ChromeTest.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Starting ChromeDriver 72.0.3626.7 (efcef9a3ecda02b2132af215116a03852d08b9cb) on port 19407
Only local connections are allowed.
pom.xml 硒依赖项:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
任何想法?我需要这方面的帮助......很多天都被这个阻止了......谢谢
解决方案
由于您不想从命令行执行任何操作,因此我建议您使用Selenium Standalone Server运行 selenium 服务器。我对 Travis 不太熟悉,所以我希望/假设你可以在那里安装它。
推荐阅读
- babeljs - 多个条目 + 带有 rollup 和 rollup-plugin-babel 的 preserveModules - 为什么 _rollupPluginBabelHelpers.js 中不包含所有帮助程序?
- javascript - 使用 javascript 获取鼠标移动方向
- swiftui - SwiftUI UITextView 协调器不起作用
- clojure - Clojure boot-clj中的“RELEASE”是什么意思?
- python - 如何跳过非营业时间向熊猫日期时间添加小时数
- c++ - 为什么 reinterpret_cast 在某些情况下有效,而在其他情况下无效?
- javascript - 如何创建带有可编辑的预填充文本的文本框?
- java - 选择所有具有匹配列名的表
- python - 在Python中将非固定键json转换为csv文件
- google-apps-script - 谷歌表格脚本getRange参数问题