java - 同一台机器上不同项目的chromedriver崩溃问题
问题描述
它可能看起来重复的问题,但找不到合适的解决方案。所以在这里提出任何建议。
我在同一台机器上有两个不同文件夹的项目,一个是 BDD 框架,另一个是 TestNG 框架。我在'/resources'文件夹下的两个框架上使用相同的chromedriver(ChromeDriver 81.0.4044.138),并使用它来启动如下。
System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
WebDriver browser = new ChromeDriver(options);
browser.manage().window().maximize();
browser.manage().deleteAllCookies();
当我运行我的 BDD 框架时,它会启动 chrome 并执行我的测试。但是在运行 TestNG 框架时,它给出了以下错误。
Starting ChromeDriver 81.0.4044.138 (8c6c7ba89cc9453625af54f11fd83179e23450fa-refs/branch-heads/4044@{#999}) on port 5661
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location C:\Program Files (x86)\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: '<host>', ip: '<ip>', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_251'
Driver info: driver.version: ChromeDriver
remote stacktrace: Backtrace:
Ordinal0 [0x00355E93+2449043]
Ordinal0 [0x00288281+1606273]
Ordinal0 [0x0017F889+522377]
我通过mvn clean install
命令将我的 BDD 作为 maven 项目运行,并以正常的右键单击和run as test class
文件运行 TestNG 项目。
我在这里缺少什么,请对此提供任何帮助。
已更新 chrome 版本.......
BDD 项目的版本
c:\BDD\Test_Project\src\test\resources\Drivers>chromedriver.exe --version
ChromeDriver 81.0.4044.138 (8c6c7ba89cc9453625af54f11fd83179e23450fa-refs/branch-heads/4044@{#999})
TestNG 项目中的版本
c:\Users\user\Downloads\gca_automation\src\test\resources>chromedriver.exe --version
ChromeDriver 81.0.4044.138 (8c6c7ba89cc9453625af54f11fd83179e23450fa-refs/branch-heads/4044@{#999})
我的 chrome 浏览器版本Version 81.0.4044.129 (Official Build) (64-bit)
解决方案
chromedriver
chrome的安装版本和安装版本之间需要兼容。
检查您的 chrome 版本并确保您拥有适当的 chromedriver 版本,您应该在下载 chrome 的官方网站上看到建议
(现在为https://chromedriver.chromium.org/downloads)。
提示:您可以使用
webdrivermanager
来自 bonigarcia 的产品。这是一个自动为您管理 chromedriver 的库,它将检查 chrome 版本并获取您需要的版本并设置webdriver.chrome.driver
也不要以 root 身份运行。
更新:杀死所有 chrome 和 chromedriver 进程,在设置驱动程序路径时使用 File.separator,例如
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + File.separator + "chromedriver.exe");
推荐阅读
- ios - TestFlight 的公共链接的兑换码在哪里?
- bash - Fiddler 不显示来自 git bash 客户端的 HTTPS 流量
- django - Django - 导入 .txt 文件以填充数据
- node.js - 网络在长时间循环中冻结
- sql - 如何在 SQL 中过滤每个 id 只有一个初始行的行?
- c# - 使用 vars 为每个用户设置 Visual Studio 2017 的输出构建路径
- ios - IOS App Store Connect 未显示新的构建状态
- javascript - 如何修改此 HTML 文档以使用 DOM 2 事件模型
- java - simpledateformat (android) 2018-10-03T09:00:36.845+0000 的日期格式是什么?
- dart - 如何在 Dart 中转换大数以缩短 K/M/B