首页 > 解决方案 > WebDriverException:尝试关闭多个窗口时无法访问 chrome

问题描述

我正在使用 Selenium Java 测试一个应用程序,该应用程序实现了基于 QT chromium 的浏览器,并显示了我需要在该浏览器中测试的网页。我正在使用 ChromeDriver 2.43.600233 并将应用名称设置为“Chrome”,版本设置为“69.0.3497.128”。

在所有选项卡上使用循环关闭应用程序,我没有遇到任何问题driver.close(),直到网页打开另一个页面但在单独的窗口中。尝试通过从主窗口中的选项卡或第二个窗口中的选项卡开始循环所有选项卡会引发该异常

Exception in thread "main" org.openqa.selenium.WebDriverException: chrome not reachable

在第一次调用driver.close(). 我试着driver.close()

((JavascriptExecutor)driver).executeScript("window.open('','_self').close()");

但它失败了同样的例外。如果我的窗口中有多个选项卡,并且我通过关闭第一个窗口中的选项卡来启动循环,则driver.close()只会在主窗口中的最后一个选项卡开始失败。然后它在切换到第二个窗口中的选项卡时失败,但有同样的例外。从第二个窗口中的选项卡开始,窗口成功关闭,但我得到一个弹出窗口

您确定要关闭窗口吗?有 2 个选项卡打开。

它属于主窗口,尽管我仍然没有切换到主窗口中的任何选项卡,并且代码停留在driver.close()对第二个窗口中的选项卡发出的调用处,直到它超时。但是,我尝试使用https://sqa.stackexchange.com/questions/33301/how-to-handle-browser-closing-popup中提到的解决方案禁用弹出窗口, 但我仍然得到弹出窗口。

driver.quit();即使在单个选项卡的情况下也从未为我工作过并且它会打印

May 05, 2021 1:14:36 PM org.openqa.selenium.os.UnixProcess destroy
INFO: Command failed to close cleanly. Destroying forcefully (v2). [/u/prod/chromedriver/chromedriver, --port=17129][ {}]
May 05, 2021 1:14:37 PM org.openqa.selenium.os.UnixProcess destroy
SEVERE: Unable to kill process with PID 7949

并且该应用程序永远不会关闭,并且我没有找到具有上述进程 ID 的任何进程。

标签: seleniumqtselenium-chromedriver

解决方案


推荐阅读