如何在 Jasmine JS 中关闭 native Web 浏览器弹出窗口?
我无法成功关闭此对话框,并且它一直显示在所有运行中。
请您帮忙!
代码:
describe('LiveSite Portal - Client perform a call', function() {
it('LiveSite - Home Page', function() {
liveSiteHome();
});
it('LiveSite Portal - Client perform a call', function() {
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[handles.length - 1]);
var alertDialog = browser.switchTo().alert().thenCatch(function (e) {
if (e.code !== 27) { throw e; }
})
.then(function (alert) {
if (alert) {
expect(alertDialog.getText()).toEqual("External Protocol Request");
return alert.dismiss()
}
element(by.css("span.hide-sm.ng-binding")).click();
browser.sleep(3000);
});
//close the native popup
browser.switchTo().window(handles[0]);
browser.sleep(5000);
});
});
});
实际结果:
最佳答案
首先,您无法使用 protractor
/selenium
处理这种弹出窗口 - 它不是 JavaScript 弹出窗口,您无法切换到它或进行控制。最好的办法是通过调整浏览器所需的功能、首选项来避免打开弹出窗口。
我还没有针对 google-chrome 的解决方案,但对于 Firefox,您需要通过定义自定义 Firefox 配置文件来设置以下首选项(请参阅 How To ):
这样您就可以让 Firefox 知道不处理外部协议(protocol)链接并且不执行任何操作。
关于node.js - 如何在 Jasmine JS 中关闭 native Web 浏览器弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30348339/