使用Selenium+Nightwatch+Chromedriver时如何在测试失败后保持浏览器打开
需调整的配置项
你现有配置缺少3处关键配置,同时有1处配置位置错误,按如下修改即可实现测试失败后浏览器不关闭的效果:
- 修正
end_session_on_fail的配置层级:你当前将该配置放在了配置文件根节点,实际需放到test_settings.default下,作用是测试失败时不主动销毁浏览器会话 - 新增
skip_testcases_on_fail配置:同样放到test_settings.default下,取值为false,避免单条用例失败后直接终止测试流程、触发会话销毁逻辑 - 给Chrome配置添加
detach参数:在test_settings.chrome.desiredCapabilities.chromeOptions下新增"detach": true,切断ChromeDriver进程和浏览器进程的绑定,就算Driver进程退出也不会连带关闭浏览器 - 新增空闲超时配置:在
test_settings.chrome.desiredCapabilities下新增"idleTimeout": 1800,单位为秒,避免Selenium服务端因为会话长时间无操作主动销毁会话关闭浏览器,就是你印象中需要设置的超高超时参数
修改后的完整nightwatch.json示例
{ "output_folder": "tests/automation/reports", "test_settings": { "default": { "selenium_port": 4444, "end_session_on_fail": false, "skip_testcases_on_fail": false, "screenshots": { "enabled": true, "path": "tests/automation/reports/screenshots" }, "javascriptEnabled": true, "acceptSslCerts": true, "acceptInsecureCerts": true, "globals": { "waitForConditionTimeout": 10000 } }, "chrome": { "extends": "default", "desiredCapabilities": { "browserName": "chrome", "javascriptEnabled": true, "acceptSslCerts": true, "acceptInsecureCerts": true, "idleTimeout": 1800, "chromeOptions": { "args": [ "--no-sandbox", "--disable-gpu" ], "detach": true } } } } }
你的nightwatch.conf.js无需修改即可正常运行。
内容的提问来源于stack exchange,提问作者ak_
相关产品推荐
相关产品推荐

