【问题标题】:In new google chrome version (Version 87.0.4280.66 (Official Build) (64-bit) did they rename "chromedriver.exe" process to "google chrome"?在新的 google chrome 版本(版本 87.0.4280.66(官方构建)(64 位)中,他们是否将“chromedriver.exe”进程重命名为“google chrome”?
【发布时间】:2021-03-07 11:36:23
【问题描述】:

在早期版本的chromedriver中,我曾经在任务管理器中看到一个名为chromedriver.exe的进程。但现在似乎在较新的版本 (87) 中,他们已将 chromedriver.exe 进程重命名为 Google Chrome

所以重点是我使用以下代码杀死所有未使用的 chromedriver.exe 进程 - Runtime.getRuntime().exec("taskkill /F /IM ChromeDriver.exe");

需要知道它仍然有效吗?或者我们必须将代码更改为 (Something like that) ? - Runtime.getRuntime().exec("taskkill /F /IM Google Chrome");

请提出建议。

【问题讨论】:

  • 你想完成什么? VS Driver.quit()?
  • @DMart - 我想要完成什么? - 关闭所有被放弃或未使用的 chromedriver.exe 进程,因为我的代码在到达 driver.quit() 代码之前发生了故障。据我所知,我认为 driver.quit() 将关闭当前的 chromedriver,而不是之前运行的那个。

标签: java selenium google-chrome selenium-webdriver automation


【解决方案1】:

使用最新的 ChromeDriver 87.0.4280.20 (2020-10-15)Google Chrome 版本 87.0.4280.66 执行一个简单的测试观察到ChromeDriver可执行进程仍然被标识为chromedriver.exe

快照:


结论

因此chromedriver.exe的进程名没有变化。

或许谷歌浏览器可以看到的无数进程都是Many process of Google Chrome (32 bit)的结果

【讨论】:

【解决方案2】:

查看 ProcessHandle,而不是使用命令行:

https://docs.oracle.com/javase/9/docs/api/java/lang/ProcessHandle.html 获取所有句柄,然后过滤命令名称,然后销毁进程:

ProcessHandle.allProcesses()
        .filter(ph -> ph.info().command().isPresent() && ph.info().command().get().contains("SomeJavaApp"))
        .forEach((process) -> {
            process.destroy();
        });

【讨论】:

    【解决方案3】:

    不,这个方向没有任何变化。在“进程”中,您实际上看到了所有 chrome.exe 进程。如果您不期望它们,它们可能是已失效的进程。您可以在“详细信息”选项卡中获得更好的概览,其中包含实际的进程名称。你也可以看到chromedriver.exe正在运行的进程,如果有的话。

    【讨论】:

      猜你喜欢
      • 2020-01-12
      • 2018-05-29
      • 2020-09-13
      • 2021-11-03
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      相关资源
      最近更新 更多