使用 Selenium 在 Chrome 中打破异常

Posted

技术标签:

【中文标题】使用 Selenium 在 Chrome 中打破异常【英文标题】:Break on exception in Chrome using Selenium 【发布时间】:2019-11-19 17:33:01 【问题描述】:

为了调查某些 Selenium 测试失败,我想在运行测试时自动启用 pause on exception feature in the Chrome Devtools。

--auto-open-devtools-for-tabs 命令行选项用于自动打开我已经在使用的 DevTools 窗格,但显然我正在寻找的自动暂停功能没有 CLI 选项/参数。

我遇到的是 Debugger.setPauseOnExceptions Chrome Devtools Protocol command,我尝试使用 execute_cdp_cmd 激活它(我正在使用 Selenium for Python):

driver.execute_cdp_cmd("Debugger.setPauseOnExceptions", "state": "all")

不幸的是,即使选项卡处于打开状态(包括 DevTools 窗格),我也得到了

unhandled inspector error: "code":-32000,"message":"Debugger agent is not enabled"

我做错了什么还是有其他方法(最好是可靠且可移植的方法,请不要使用宏)?

【问题讨论】:

【参考方案1】:

您可能需要在命令之前启用调试器:

driver.execute_cdp_cmd("Debugger.enable", )
driver.execute_cdp_cmd("Debugger.setPauseOnExceptions", "state": "all")

【讨论】:

显然它有效,但只有在我导航到一个页面之后,但因此它不适用于在页面初始化后立即执行的脚本(drive.get() 是异步的)。在 DevTools 中也看不到它已被激活。

以上是关于使用 Selenium 在 Chrome 中打破异常的主要内容,如果未能解决你的问题,请参考以下文章

CSS column-count 打破了 Chrome 中的表格滚动

在 selenium 中使用“webdriver.Chrome()”时出错 [重复]

如何在 Docker 中使用 Chrome 运行 Selenium

为啥selenium2library 的mouse over在chrome中一闪而过

如何在 selenium 中使用无头 Chrome 启用 JavaScript

如何在 Selenium 中使用 Chrome 查看 Flash cookie