我正在尝试在Oracle Linux服务器版本7.6运行中运行我的套件 当我尝试同时使用 Chrome 和无头 chrome 运行时,服务器中还安装了 Chrome 76,每次它都会给出以下错误。
即使我尝试从chrome 246驱动程序到chrome 79驱动程序,但没有运气
org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'arusprint02', ip: '100.104.104.102', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.35-1902.3.1.el7uek.x86_64', java.version: '1.8.0_222'
Driver info: driver.version: ChromeDriver
remote stacktrace: #0 0x55c9ab4f1129 <unknown>
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57)
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:122)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:531)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:125)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:212)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157)
at utils.Intelligence_Browser.SetconfigurationBrowser(Intelligence_Browser.java:142)
at utils.RunnerArf.main(RunnerArf.java:80)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
..
我在这里使用的代码:
} else if (Browser.equalsIgnoreCase("chrome")) {
System.out.println("Chrome is Starting");
String chromedriverPath = PropertyfileConfig.getStringValueFromProperty("chromedriverpath");
System.setProperty("webdriver.chrome.driver", chromedriverPath);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
capabilities.setCapability("chrome.binary", "<Path to binary>");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
//driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
System.out.println("Chrome driver selected");
driver.get(Url);
} else if (Browser.equalsIgnoreCase("headless")) {
String chromedriverPath = PropertyfileConfig.getStringValueFromProperty("chromedriverpath");
System.setProperty("webdriver.chrome.driver", chromedriverPath);
ChromeOptions options = new ChromeOptions();
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-gpu");
options.addArguments("--disable-extensions");
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("--proxy-server='direct://'");
options.addArguments("--proxy-bypass-list=*");
options.addArguments("--start-maximized");
options.addArguments("--headless");
driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.get(Url);
此错误消息...
org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'arusprint02', ip: '100.104.104.102', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.35-1902.3.1.el7uek.x86_64', java.version: '1.8.0_222'
Driver info: driver.version: ChromeDriver
。暗示ChromeDriver无法与Selenium语言绑定进行通信。
您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:
- 从错误跟踪日志中不清楚您的chromedriver版本。
- 您的chrome= 75.0版本在错误跟踪日志中不清楚。
- 您的硒客户端版本无法识别。
所以Selenium客户端,ChromeDriver和Chrome浏览器之间存在明显的不匹配
溶液
确保:
- 硒已升级到当前级别 版本 3.141.59。
- ChromeDriver已更新到当前的 ChromeDriver v79.0.3945.36 级别。 Chrome
- 已更新到当前的Chrome 版本 79.0级别。(根据ChromeDriver v78.0发行说明(
- 通过IDE清理项目工作中心,并仅使用所需的依赖项重新生成项目。
- (仅限WindowsOS(使用CCleaner工具在执行测试套件之前和之后清除所有操作系统杂务。
- (仅限LinuxOS(在执行测试套件之前和之后释放Ubuntu/Linux Mint中未使用/缓存的内存。
- 如果您的基本 Web 客户端版本太旧,请通过Revo 卸载程序将其卸载,并安装最新的 GA 和已发布版本的Web 客户端。
- 重新启动系统。
- 以非 root用户身份执行
@Test
。