2014-01-22 43 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; 
相關問題