【问题标题】:chromedriver crash problem with different project on same machine同一台机器上不同项目的chromedriver崩溃问题
【发布时间】:2020-07-09 16:46:54
【问题描述】:

它可能看起来重复的问题,但找不到合适的解决方案。所以在这里提出任何建议。

我在同一台机器上有两个不同文件夹的项目,一个是 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)

【问题讨论】:

  • 这方面有什么帮助吗?这里可能是什么问题..?
  • 如果您在远程机器上运行,请确保您指定了端口,我在这里看到的是不同的端口(5661)而不是默认的 4444
  • 不,我没有在任何远程机器上运行。两者都在我的本地笔记本电脑中,并在同一台机器上运行。唯一的区别是两者都在不同的文件夹中。
  • 如果和端口有关,我应该怎么做一个默认端口并尝试?
  • 似乎没问题,我刚刚做了一个测试,我也遇到了同样的情况,从不同的端口开始。

标签: java selenium-webdriver selenium-chromedriver testng bdd


【解决方案1】:

chromedriver 需要与安装的 chrome 版本兼容。

检查您的 chrome 版本并确保您拥有适当的 chromedriver 版本,您应该在下载 chrome 的官方网站上看到建议
(现在https://chromedriver.chromium.org/downloads)。

提示:您可以使用来自 bonigarcia 的 webdrivermanager。这是一个自动为您管理 chromedriver 的库,它会检查 chrome 版本并获取您需要的版本并设置webdriver.chrome.driver

也不要以 root 身份运行。

更新:杀死所有 chrome 和 chromedriver 进程,在设置驱动程序路径时使用 File.separator,例如喜欢
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + File.separator + "chromedriver.exe");

【讨论】:

  • 我已经检查过版本,都是一样的。如前所述,它在 BDD 项目中运行,但不在 TestNG 项目中。关于webdrivermanager,我不能使用它,因为我的企业阻止了它。所以我需要在我的项目中有物理驱动程序文件。
  • 再次检查所有 chromedriver 和 chrome 的所有版本,如果已打开,请重新启动 chrome,同时从任务管理器中使用 chrome/chromedriver 关闭所有进程。
  • 我按照你说的Relative PathAbsolute Path,使用user.dir,一路尝试,但没有运气。都给出了同样的错误。
猜你喜欢
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-16
  • 1970-01-01
  • 2021-05-23
相关资源
最近更新 更多