【发布时间】:2015-02-19 15:50:20
【问题描述】:
我有一个 protractor 设置,通过 multiCapabilities 配置了多个浏览器,在 browserstack 上运行测试。
我的一个关键量角器规格/测试包含以下afterEach() 块:
afterEach(function() {
browser.manage().logs().get("browser").then(function (browserLog) {
expect(browserLog.length).toEqual(0);
});
});
检查浏览器控制台是否为空(控制台上没有错误)。
问题是:当我在 Internet Explorer 上运行这个规范时,我得到了一个UnknownError:
UnknownError:找不到命令:POST /session/6b838fe8-f4a6-4b31-b245-f4bf8f37537c/log
经过快速研究,我发现IE selenium webdriver 尚不支持会话日志:
问题是:我怎样才能捕捉到这个UnknownError 并让规范在这个特定错误的情况下通过?
或者,为了扭转局面,是否有可能拥有afterEach() 块功能/特定于浏览器,或者知道它当前正在运行的功能是什么?
我尝试使用try/catch 并尝试依赖异常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。
【问题讨论】:
标签: javascript angularjs selenium exception-handling protractor