如何在 Protractor 中处理弹出 window
How to handle with popup window in Protractor
有时,当我的测试传感器达到警报级别时,应用程序会立即覆盖浏览器 window 事件 window,我必须确认这一点,然后我的测试失败。在不关闭应用程序配置中的事件 window 的情况下,我该如何解决这个问题?
您需要检查元素是否存在以及是否存在才能单击它,一些代码类似于:
static async clickIfPresent(target: ElementFinder) {
const isPresent = await target.isPresent();
if (isPresent) {
return this.click(target);
}
return;
}
在自动化中使用量角器识别或处理javascriptpopup/alert。
使用 accept 方法在显示的弹出窗口中按 ok/submit 按钮。
browser.driver.switchTo().alert().accept();
关闭 javascript 弹出窗口:
browser.driver.switchTo().alert().dismiss();
获取javascript弹出窗口的文本:
browser.driver.switchTo().alert().getText();
将密钥发送到 javascript 弹出窗口:
browser.driver.switchTo().alert().sendKeys("Value");
处理量角器中的子浏览器弹出窗口:
(此代码切换到子浏览器弹出窗口)
Child browser is popup having many web elements. Elements inside the
popup can be inspected and elements can be identified by find element
and any actions can be performed on those elements.
browser.getAllWindowHandles().then(function(handles) {
var count=handles.length;
var newWindow = handles[count-1];
browser.switchTo().window(newWindow);
});
有时,当我的测试传感器达到警报级别时,应用程序会立即覆盖浏览器 window 事件 window,我必须确认这一点,然后我的测试失败。在不关闭应用程序配置中的事件 window 的情况下,我该如何解决这个问题?
您需要检查元素是否存在以及是否存在才能单击它,一些代码类似于:
static async clickIfPresent(target: ElementFinder) {
const isPresent = await target.isPresent();
if (isPresent) {
return this.click(target);
}
return;
}
在自动化中使用量角器识别或处理javascriptpopup/alert。
使用 accept 方法在显示的弹出窗口中按 ok/submit 按钮。
browser.driver.switchTo().alert().accept();
关闭 javascript 弹出窗口:
browser.driver.switchTo().alert().dismiss();
获取javascript弹出窗口的文本:
browser.driver.switchTo().alert().getText();
将密钥发送到 javascript 弹出窗口:
browser.driver.switchTo().alert().sendKeys("Value");
处理量角器中的子浏览器弹出窗口: (此代码切换到子浏览器弹出窗口)
Child browser is popup having many web elements. Elements inside the popup can be inspected and elements can be identified by find element and any actions can be performed on those elements.
browser.getAllWindowHandles().then(function(handles) {
var count=handles.length;
var newWindow = handles[count-1];
browser.switchTo().window(newWindow);
});