2014-01-22 3 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

Это может помочь - это то, как я обнаруживаю предупреждение с использованием 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(){}); 
} 
+0

Он отлично работает для меня! благодаря! – daronwolff

0

Обязательно установите ignoreSynchronization, если вы перемещаетесь к угловому, не приложение:

browser.ignoreSynchronization = true; 
browser.get(url); 
browser.switchTo().alert().then(function() { 
    browser.switchTo().alert().accept(); 
}, function(){}); 
browser.ignoreSynchronization = false; 
Смежные вопросы