Angularjs 量角器接受提示

Angularjs 量角器接受提示,angularjs,selenium,window,protractor,prompt,Angularjs,Selenium,Window,Protractor,Prompt,我的AngularJS应用程序使用密钥斗篷进行身份验证。它会打开一个窗口提示,要求用户输入域名 angular.element(document).ready(function () { var domain; if (Modernizr.localstorage) { domain = window.localStorage['com.example.domain']; } if (!domain) { domain = window.prompt("Enter your cu

我的AngularJS应用程序使用密钥斗篷进行身份验证。它会打开一个窗口提示,要求用户输入域名

angular.element(document).ready(function () {
var domain;
if (Modernizr.localstorage) {
    domain = window.localStorage['com.example.domain'];
}
if (!domain) {
    domain = window.prompt("Enter your customer domain:\n\nNote: This has to be entered only once.", "example.com");
    if (domain && Modernizr.localstorage) {
        window.localStorage['com.example.domain'] = domain;
    }
}
如果我使用safari运行测试,我可以关闭此提示符一次,使用KeyClope登录,并成功运行其他测试。但在chrome中,每次运行测试时都会打开此提示符

如何让Chrome关闭此提示并继续登录页面

我试过了

 browser.wait(EC.alertIsPresent()).then(function () {
        browser.driver.switchTo().alert().then(function (alert) {
            alert.accept();
        });
    });
 browser.wait(EC.alertIsPresent()).then(function () {
        browser.driver.switchTo().alert().then(function (alert) {
            alert.accept();
        });
    }); 


但我仍然收到意外的警报错误

我不确定您正在运行的量角器版本,但自2.0版以来,browser.waitis上的时间发生了变化

“由于WebDriverJ中的更改,现在默认情况下将不超时等待 等待0毫秒,而不是无限期等待。“

您可以在不使用.then()的情况下进行尝试,如下所示

browser.wait(EC.alertIsPresent(), 5000);
browser.switchTo().alert().accept();
我还注意到你提到尝试两种不同的东西,但我相信你错了,因为它们都是一样的

我试过了

 browser.wait(EC.alertIsPresent()).then(function () {
        browser.driver.switchTo().alert().then(function (alert) {
            alert.accept();
        });
    });
 browser.wait(EC.alertIsPresent()).then(function () {
        browser.driver.switchTo().alert().then(function (alert) {
            alert.accept();
        });
    }); 

 browser.wait(EC.alertIsPresent()).then(function () {
        browser.driver.switchTo().alert().then(function (alert) {
            alert.accept();
        });
    }); 
但我仍然收到意外的警报错误


您提到在Safari中关闭一次提示,这是手动还是通过测试?如果是通过测试,你用什么代码来做这件事

哦,是的,对不起,那是个打字错误。事实上,我用另一种方法解决了这个问题,即不打开警报,但我不告诉你细节。