Handling Unknown Errors in protractor

痴心易碎 提交于 2019-12-22 06:39:30

问题


I have a protractor setup with multiple browsers configured through multiCapabilities, running tests on browserstack.

One of my key protractor specs/tests contain the following afterEach() block:

afterEach(function() {
    browser.manage().logs().get("browser").then(function (browserLog) {
        expect(browserLog.length).toEqual(0);
    });
});

that checks that the browser console is empty (no errors on the console).

The problem is: when I run this spec against Internet Explorer, I'm getting an UnknownError:

UnknownError: Command not found: POST /session/6b838fe8-f4a6-4b31-b245-f4bf8f37537c/log

After a quick research, I've found out that IE selenium webdriver does not yet support session logs:

  • [IE] Add support for fetching logs using the webdriver.manage().logs() mechanism

The question is: how can I catch this UnknownError and let the spec pass in case of this specific error?

Or, to turn it around, is it possible to have an afterEach() block capability/browser-specific, or know which currently running capability is it?


I've tried to use try/catch and try relying on exception sender, but console.log() is not executed:

afterEach(function() {
    try {
        browser.manage().logs().get("browser").then(function (browserLog) {
            expect(browserLog.length).toEqual(0);
        });
    }
    catch (e) {
        console.log(e.sender);
    }
});

As a workaround, I'm duplicating the same spec but without that failing afterEach() block, specifically for Internet Explorer.


回答1:


Found one option - using getCapabilities() to retrieve the current browser name:

afterEach(function() {
    browser.driver.getCapabilities().then(function(caps) {
        var browserName = caps.caps_.browserName;

        if (browserName !== "internet explorer") {
            browser.manage().logs().get("browser").then(function (browserLog) {
                expect(browserLog.length).toEqual(0);
            });
        }
    });
});

In this case browser logs would not be checked if running against Internet Explorer.



来源:https://stackoverflow.com/questions/27587571/handling-unknown-errors-in-protractor

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!