【问题标题】:ChromeDriver crashes and does not create a session when chrome is already open in selenium-jvm当 chrome 已经在 selenium-jvm 中打开时,ChromeDriver 崩溃并且不创建会话
【发布时间】:2018-11-25 23:41:50
【问题描述】:

这个问题有两个部分-

  1. 当 chrome 浏览器已经打开并且我触发我的 selenium-java 测试用例以针对 chrome 运行时,它不会打开新的 chrome 会话。
  2. 它使用已打开的现有 chrome 并开始打开新选项卡,但仍无法正常工作。

我的驱动初始化如下:

System.setProperty("webdriver.chrome.driver", ConfigUtils.getCurrentDirectory()+ Chromefile.getPath());               
ChromeOptions options = new ChromeOptions();
//options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("disable-extensions");
options.setExperimentalOption("useAutomationExtension", false)
driver = new ChromeDriver(options);

我已经尝试了 Stack Overflow 上建议的几件事 -

  1. 有人描述这是一个问题,因为chromedriver 无法启动另一个 chrome 实例 - 默认配置文件。所以我在上面的代码中添加了以下行-

    String profile1 = "C:\\Users\\user_id\\Documents\\ChromeProfile1\\";
    options.addArguments("user-data-dir="+profile1);
    

这样做是为了让chromedriver 可以启动一个新的 chrome 配置文件。它确实打开了一个新的 chrome 窗口,但没有导航到 URL。

根据chromedriver的官方文档——

默认情况下,ChromeDriver 将为每个 会话。

而且我以前从来没有这样做过。我不确定为什么这不起作用,我还能做什么?

我正在使用 -

Selenium-java version 3.141.1
ChromeDriver version 2.38
Chrome version 70
Windows 10

请注意- 我上面提到的 chrome 和 chromedriver 版本是兼容的,并且在 chrome 尚未运行时工作正常此外,当 chrome 窗口已经打开时,我可以在无头模式下运行相同的测试。

如果您需要更多信息,请告诉我。我得到的错误如下 -

启动 ChromeDriver 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb) 在端口 18020 上仅限本地 允许连接。 org.openqa.selenium.WebDriverException: 未知错误:Chrome 无法启动:崩溃(驱动程序信息: 铬驱动程序=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),平台=Windows NT 10.0.17134 x86_64)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:61.87 秒构建信息: 版本:'3.141.5',修订:'d54ebd709a',时间: '2018-11-06T11:42:16' 系统信息:主机:'XXXX',ip:'XXXX',os.name: 'Windows 10',os.arch:'x86',os.version:'10.0',java.version: '1.8.0_162' 驱动信息:driver.version: ChromeDriver

【问题讨论】:

    标签: selenium google-chrome selenium-webdriver selenium-chromedriver


    【解决方案1】:

    ChromeDriver 2.38 仅支持 Chrome 65 至 67。请参阅https://chromedriver.storage.googleapis.com/2.38/notes.txt 的发行说明。在某些情况下,它可能碰巧与某些其他版本的 Chrome 一起使用,但不支持这种用法。建议在 Chrome 70 中使用 ChromeDriver 2.44。

    我认为您发布的代码没有任何问题。希望您在下载更新的 ChromeDriver 后能够获得更好的结果。

    【讨论】:

    • 很高兴在这里见到你。感谢您的贡献。希望看到您更频繁地指导社区。​​span>
    • 另一方面,我仍然不知道为什么用户会看到 ...当 chrome 浏览器已经打开并且我触发我的 selenium-java 测试用例以针对 chrome 运行它不会打开新的 chrome 会话...。有什么建议/提示/想法吗?
    • 默认情况下,ChromeDriver 总是会启动一个新的 Chrome 会话,即使 Chrome 已经在运行。但是,如果使用不当,某些选项可能会导致问题。
    • 例如 --user-data-dir 和 --remote-debugging-port 是需要谨慎使用的选项。
    • 似乎我错过了将我的实际查询放在我之前的评论中。我的意思是问 ...当 chrome 浏览器已经打开并且我触发我的 selenium-java 测试用例以针对 chrome 运行它不会打开新的 chrome 会话并且 它使用现有的 chrome已打开 ...。我在这里一无所知。
    猜你喜欢
    • 2020-03-29
    • 1970-01-01
    • 2022-11-21
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多