selenium - 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 的任何进程。
解决方案
推荐阅读
- python - 为什么调整模态 Qt 对话框的大小使其不再停留在 ctwm 窗口管理器中其父级的顶部?
- python - 使用 lambda 调用带有参数但传递索引而不是项的函数
- google-apps-script - 如何将 drive.file 范围用于独立的谷歌应用程序脚本
- linux - 当我在 Windows 中编辑代码但在 Linux 中构建和运行代码时如何使用 git 进行版本控制(使用 pycharm)
- python - 为什么 numpy.cumsum 的最后一个条目不一定等于 numpy.sum
- python - [tensorflow]如何通过子类化模型类(tf.keras.Model)来包装一系列代码
- javascript - 如何在 Thymeleaf 中将 JS 变量添加到 DTO
- html - 如何在 Bootstrap 5 中的日期选择器输入之后放置日期图标?
- rabbitmq - 是否可以订阅rabbit mq消息队列以便在消息进入队列时获取消息而不使用while循环
- python - 有没有办法计算价值?