在 Chromedriver 中截取屏幕截图时由于未知错误导致的零星测试失败

Sporadic test failures due to unknown error while taking screenshot in Chromedriver

当 运行 在 Chrome 时,我们开始出现零星的测试失败。我会说每 10 次测试运行中就有 3 次发生这种情况。我不知道为什么会发生这种情况或如何解决它。任何帮助表示赞赏。下面是我们看到的堆栈跟踪错误。

org.openqa.selenium.WebDriverException: unknown error: cannot take screenshot from unknown error: Failed to capture tab: unknown error JavaScript stack: Error: Failed to capture tab: unknown error at checkForExtensionError (chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/background.js:14:17) at Object.callback (chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/background.js:37:5) at safeCallbackApply (extensions::sendRequest:21:15) at handleResponse (extensions::sendRequest:73:7) (Session info: chrome=42.0.2311.135) (Driver info: chromedriver=2.9.248315,platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 13 milliseconds Build info: version: '2.44.0', revision: '76d78cf323ce037c5f92db6c1bba601c2ac43ad8', time: '2014-10-23 13:11:40' System info: host: 'RTCITS5CG2XY1', ip: '10.14.101.52', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_67'

我最好的猜测是浏览器 window 正在关闭,但尚未截取屏幕截图,因此当它尝试截取屏幕截图时,它显示 "eh, I can't even access the tab" 并在你的脸。

朝着正确方向迈出的一步是将您的截屏代码封装在 try/catch 中,并将其中的任何错误记录到您的测试日志中(只是为了让您不会完全吃掉异常)。然后失败测试的实际异常将在堆栈跟踪中(因为它不应该被捕获)。