2013-02-04 25 views
5

Sayfanın bir uyarı kutusunun nasıl çağrıldığını nasıl test ederim? Uyarı kutusunun metnini alabilir ve değerlendirebilir miyim?CasperJS ve uyarı kutuları

casper.waitForSelector('a[href="javascript:UserLogin()"]', 
    function success() { 
     this.test.comment("Submiting the bad login info"); 
     this.test.assertExists('a[href="javascript:UserLogin()"]'); 
     this.click("a#h_login"); 
    }, 
    function fail() { 
     this.test.assertExists('a[href="javascript:UserLogin()"]'); 
}); 

UserLogin işlevi çekleri ve bu durumda, bu döndürür::

CasperJS içinde Tıklamam böyle yapılır

alert('Login has failed.'); 

Bunu nasıl kontrol edebilirim?

cevap

13

Sen remote.alertevent dinlemek zorunda:

casper.on('remote.alert', function(message) { 
    this.echo('alert message: ' + message); 
    // or if you want to test it 
    this.test.assertMatch(message, /Login has failed/); 
}); 

denemesi senkron biraz daha yapmak için:

function testAlert(message) { 
    this.test.assertMatch(message, /Login has failed/); 
} 

casper.then(function() { 
    // temporarily registering listener 
    this.on('remote.alert', testAlert); 
}); 

casper.waitForSelector('#login', function success() { 
    this.test.pass('selector was found'); 
    this.click("#login"); 
}, function fail() { 
    this.test.fail('selector was found'); 
}); 

casper.then(function() { 
    this.removeListener('remote.alert', testAlert); 
}); 
5

Sürüm 1.1-beta4 casper.waitForAlert function sağlar. Bununla birlikte sayfada farklı uyarılara tepki vermeniz gerektiğinde daha güzel testler yazabilirsiniz.