我正在努力写一个测试;我想在其中检查警报是否存在,检查其文本是否存在并接受它。
我检查了How to wait for an alert in Selenium webdriver ?,How to check if an alert exists using WebDriver?和selenium 2.4.0, how to check for presence of an alert,但我无法使用https://github.com/admc/wd
进行调整我写了一些东西
browser.alertText(function (err, text) {
if (text) {
browser.acceptAlert(function () {
// ...
});
}
});
显示警报时效果非常好,但在没有警报窗口时alertText
挂起。
如何在发出alertText
之前检查警报是否存在?
感谢您的帮助,
答案 0 :(得分:7)
这可能会有所帮助 - 这就是我使用Selenium Webdriver为node.js检测警报的方法:
var webdriver = require('selenium-webdriver');
var url = "http://web-page-to-test-for-alert";
driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
driver.get(url);
driver.switchTo().alert().then(
function() {
console.log("alert detected");
},
function() {
console.log("no alert detected");
}
);
driver.quit();
'然后'与承诺相关:然后(成功,失败)
这也可能有所帮助 - 这就是我忽略页面上出现的任何警报的方式:
function ignoreAlert(driver) {
// detect and accept any alert
driver.switchTo().alert().then(function() {
driver.switchTo().alert().accept();},
function(){});
}
答案 1 :(得分:0)
如果您要导航到非角度应用,请务必设置ignoreSynchronization:
browser.ignoreSynchronization = true;
browser.get(url);
browser.switchTo().alert().then(function() {
browser.switchTo().alert().accept();
}, function(){});
browser.ignoreSynchronization = false;