处理量角器中的未知错误

ec

我有一个protractor通过配置多个浏览器设置,multiCapabilities在browserstack上运行测试。

我的主要量角器规格/测试之一包含以下afterEach()块:

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

检查浏览器控制台为空(控制台上没有错误)。

问题是:当我针对Internet Explorer运行此规范时,我得到了UnknownError

UnknownError:找不到命令:P​​OST / session / 6b838fe8-f4a6-4b31-b245-f4bf8f37537c / log

经过快速研究,我发现IE selenium webdriver尚不支持会话日志:

问题是:UnknownError在出现此特定错误的情况下,我该如何捕捉并让规格通过?

或者,要解决这个问题,是否可能具有afterEach()阻止功能/特定于浏览器的功能,或者知道它当前正在运行的功能?


我尝试使用try/catch并尝试依赖exception sender,但未console.log()执行:

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

作为一种解决方法,我正在复制相同的规格,但没有失败的afterEach()障碍,特别是对于Internet Explorer。

ec

找到一个选项-getCapabilities()用于检索当前浏览器名称:

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);
            });
        }
    });
});

在这种情况下,如果是针对Internet Explorer运行的,则不会检查浏览器日志。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章