2014-01-22 127 views
2

我正在努力编写测试;其中我想检查是否存在警报,检查其文本是否存在并接受它。如何使用nodejs webdriver检查警报是否打开(wd)

我查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之前检查警报是否存在?

感谢您的帮助,

回答

5

这可能会帮助 - 这是我如何检测使用硒的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(){}); 
} 
+0

它对我来说非常合适!谢谢! – daronwolff

0

如果您正在导航到非角度应用,请务必设置ignoreSynchronization:

browser.ignoreSynchronization = true; 
browser.get(url); 
browser.switchTo().alert().then(function() { 
    browser.switchTo().alert().accept(); 
}, function(){}); 
browser.ignoreSynchronization = false; 
相关问题