我有一个protractor
通过配置多个浏览器进行设置multiCapabilities
,在 browserstack 上运行测试。
我的主要量角器规格/测试之一包含以下内容afterEach()
block:
afterEach(function() {
browser.manage().logs().get("browser").then(function (browserLog) {
expect(browserLog.length).toEqual(0);
});
});
检查浏览器控制台是否为空(控制台上没有错误)。
问题是:当我针对 Internet Explorer 运行此规范时,我得到一个UnknownError
:
未知错误:找不到命令:POST /session/6b838fe8-f4a6-4b31-b245-f4bf8f37537c/log
经过快速研究后,我发现IE selenium webdriver
尚不支持会话日志:
- [IE] 添加对使用 webdriver.manage().logs() 机制获取日志的支持 https://code.google.com/p/selenium/issues/detail?id=4925
问题是:我怎样才能抓住这个UnknownError
并在出现此特定错误时让规范通过?
或者,扭转局面,是否有可能afterEach()
阻止功能/特定于浏览器,或者知道当前正在运行的功能是什么?
我尝试过使用try/catch
并尝试依赖异常sender
, but 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。