硒和量角器崩溃,无法截屏

selenium and protractor crash, cannot take screenshot

我在 Jasmine 中的每个测试描述都带有一个 afterEach() 来检查测试用例是否通过。如果它没有通过,我想截取有问题的测试屏幕的屏幕截图。

有时我会收到错误的崩溃报告。我不确定如何调试或修复它以了解更多信息。

    afterEach(function() {
        var passed = jasmine.getEnv().currentSpec.results().passed();
        if (!passed) {
            takeScreenCap("FAILEDTESTCASE_" + jasmine.getEnv().currentSpec.description);
        }
    });

崩溃本身

 Message:
     UnknownError: 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:72:7)
  (Session info: chrome=44.0.2403.89)
  (Driver info: chromedriver=2.15.322455 (ae8db840dac8d0c453355d3d922c91adfb61df8f),platform=Mac OS X 10.10.4 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 27 milliseconds
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'Pro.local', ip: '', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.4', java.version: '1.8.0_45'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=/var/folders/92/10bfp2jx43n468ctgft30gr40000gn/T/.org.chromium.Chromium.KRpAWe}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=44.0.2403.89, platform=MAC, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 53788da31ca3dbf09e6b9f80525403d9
   Stacktrace:
     UnknownError: 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:72:7)
  (Session info: chrome=44.0.2403.89)
  (Driver info: chromedriver=2.15.322455 (ae8db840dac8d0c453355d3d922c91adfb61df8f),platform=Mac OS X 10.10.4 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 27 milliseconds
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'Pro.local', ip: '...', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.4', java.version: '1.8.0_45'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=/var/folders/92/10bfp2jx43n468ctgft30gr40000gn/T/.org.chromium.Chromium.KRpAWe}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=44.0.2403.89, platform=MAC, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 53788da31ca3dbf09e6b9f80525403d9
    at Array.forEach (native)
From: Task: Asynchronous test function: afterEach()
Error

我不会重新发明轮子并使用:

它会为您提供一份不错的 HTML 报告,其中包括屏幕截图。如果您想在失败时进行屏幕截图,请将 use captureOnlyFailedSpecs 设置为 true:

jasmine.getEnv().addReporter(new HtmlScreenshotReporter({
   captureOnlyFailedSpecs: true
}));