我有一个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
并尝试依赖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。
找到一个选项-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] 删除。
我来说两句