我在使用 selenium chrome 时遇到一些奇怪的行为:当测试启动 chrome 时,如果没有运行 chrome 实例,chrome 会正常启动。 如果已经有一个 chrome 实例在运行,则会在该 chrome 窗口中启动一个新选项卡,并在一段时间后抛出以下消息:
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome failed to start: exited normally.
(timeout: Timed out receiving message from renderer: 60.000)
(The process started from chrome location C:\Program Files\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
并行测试也是如此。一个实例已启动,其他测试正在尝试在新选项卡上启动,但失败并显示与上述相同的消息。 我正在使用
Java 17
、selenium 4.17.0
、chrome 121.0.6167.161
和 chromedriver 121.0.6167.85
。 Chromedriver 和其余驱动程序通过 webdrivermanager 5.6.3
和 testNG 7.7.1
自动安装
还注意到所有边缘驱动程序和 Firefox 都运行良好。
最后,我尝试了一些关于 chrome 选项的建议想法,但仍然没有成功。
任何帮助将不胜感激。
嗨@gandalf_the_cool,
这是使用 Selenium 时非常常见的问题。
当您的 selenium 代码尝试访问真实浏览器并尝试执行命令但无法找到任何真实浏览器时,会出现此 sessionNotCreated 错误和响应代码 500。可能的原因是 -
我的建议是,目前在最新版本的 selenium 中,您不必提供任何 chromedriver.exe 二进制文件/路径。只需使用 selenium maven 依赖项根据您的要求创建新的 chromeDriver/edgeDriver 。它将在 ~/.cache/selenium 中下载所需的 .exe 文件