我有一个量角器设置,通过multiCapabilities配置多个浏览器,在browserstack上运行测试.
我的一个关键量角器规格/测试包含以下afterEach()块:
afterEach(function() {
browser.manage().logs().get("browser").then(function (browserLog) {
expect(browserLog.length).toEqual(0);
});
});
检查浏览器控制台是否为空(控制台上没有错误).
问题是:当我针对Internet Explorer运行此规范时,我收到一个UnkNownError:
UnkNownError: Command not found: POST /session/6b838fe8-f4a6-4b31-b245-f4bf8f37537c/log
经过快速研究,我发现IE selenium webdriver还不支持会话日志:
> [IE] Add support for fetching logs using the webdriver.manage().logs() mechanism
问题是:如何捕获此UnkNownError并在发生此特定错误时让规范通过?
或者,为了扭转它,是否可以具有afterEach()块功能/特定于浏览器,或者知道当前正在运行的功能是什么?
我试过使用try / catch并尝试依赖异常发送者,但是没有执行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] 举报,一经查实,本站将立刻删除。