2013-10-14 98 views
0

這段代碼語句(在casperjs文檔中給出)到底做了什麼?casperjs的測試屬性

return /message sent/.test(document.body.innerText); 

同樣的文檔並沒有解釋得那麼多。因此,麻煩。

我試圖檢查我是否使用casperjs fill()方法成功登錄到網站。

這裏是我的劇本,如果它的事項:

var casper = require('casper').create(); 

casper.start('http://example.com', function() { 
    this.fill('form[action="login.php"]', { 
     'username': 'myname', 
     'password': 'mypass' 
    }, true); 
}); 

casper.then(function() { 
    this.evaluateOrDie(function() { 
     return /message sent/.test(document.body.innerText); 
    }, 'sending message failed'); 
}); 

casper.run(function() { 
    this.echo('message sent').exit(); 
}); 

我需要幫助casper.then()casper.run()檢查我的登錄嘗試。我對javascript和casperjs都很新,所以如果它是一個非常基本的問題,請原諒我。

回答

3

這不是一個CasperJS功能,而是一個Javascript。

這是什麼東西做的,如果它匹配一個正則表達式(/message sent/

在這種情況下,正在測試一個字符串(document.body.innerText),如果它不能在遠程頁面的主體發現message sent,CasperJS將退出。

您可能還想嘗試使用以下內容,因爲它會確保在繼續之前已給頁面加載時間。

casper.then(function() { 
    this.waitForText("message sent", function then() { 
     this.echo('message sent'); 
    }, function timeout() { 
     this.die('sending message failed'); 
    }); 
});