量角器接受提示
Protractor Accept a Prompt
我的 AngularJS 应用程序使用 Keycloak 进行身份验证。并打开 window 提示,要求用户输入域名。
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 进行测试,我可以关闭此提示一次,使用 Keycloak 登录并成功进行所有其他测试 运行。但在 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.waits 上的时间已经改变
"由于 WebDriverJS 的变化,现在默认等待没有超时
等待 0 毫秒而不是无限期地等待。"
https://github.com/angular/protractor/blob/master/CHANGELOG.md#breaking-changes
您可以在没有 .then() 的情况下尝试,如下所示
browser.wait(EC.alertIsPresent(), 5000);
browser.switchTo().alert().accept();
我还注意到你提到尝试两种不同的东西,但我相信你打错了字,因为它们是一样的。
I tried
browser.wait(EC.alertIsPresent()).then(function () {
browser.driver.switchTo().alert().then(function (alert) {
alert.accept();
});
});
or
browser.wait(EC.alertIsPresent()).then(function () {
browser.driver.switchTo().alert().then(function (alert) {
alert.accept();
});
});
But I still get the unexpected alert error
并且您提到在 Safari 中关闭提示一次,这是手动还是通过测试?如果是通过测试,你用什么代码来做到这一点
我的 AngularJS 应用程序使用 Keycloak 进行身份验证。并打开 window 提示,要求用户输入域名。
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 进行测试,我可以关闭此提示一次,使用 Keycloak 登录并成功进行所有其他测试 运行。但在 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.waits 上的时间已经改变
"由于 WebDriverJS 的变化,现在默认等待没有超时 等待 0 毫秒而不是无限期地等待。"
https://github.com/angular/protractor/blob/master/CHANGELOG.md#breaking-changes
您可以在没有 .then() 的情况下尝试,如下所示
browser.wait(EC.alertIsPresent(), 5000);
browser.switchTo().alert().accept();
我还注意到你提到尝试两种不同的东西,但我相信你打错了字,因为它们是一样的。
I tried
browser.wait(EC.alertIsPresent()).then(function () { browser.driver.switchTo().alert().then(function (alert) { alert.accept(); }); });
or
browser.wait(EC.alertIsPresent()).then(function () { browser.driver.switchTo().alert().then(function (alert) { alert.accept(); }); });
But I still get the unexpected alert error
并且您提到在 Safari 中关闭提示一次,这是手动还是通过测试?如果是通过测试,你用什么代码来做到这一点