你能告訴我你的代碼實際上調用API嗎?
waitForResource實際上只是等待頁面本身或casperjs手動調用的資源。這可以實施某種形式的循環中,你將調用API每5秒和斷言,API將響應的200或201
編輯:
首先你需要知道多少時間你應該等待資源在你的數據庫中。以你計算的最大時間爲準。然後編寫函數,這將迭代API調用像這樣。
var condition = false;
function loop(index,iteration){
if(condition) {
return;
}
else if(index >= iteration) {
casper.test.fail('Record not found');
return;
}
casper.then(function(){
this.thenOpen('http://www.webpage.com/api/record/543',function(response){
if(response.status==200) {
condition = true;
this.test.pass("Record found");
}
this.echo(response.status);
})
})
.then(function(){
loop.call(this,index+1,iteration)
})
}
casper.test.begin('Test for record',1,function suite(test){
casper.start()
loop.call(this, 0, 20);
casper.run(function(){
test.done();
})
})
如果您需要利用高流量的呼叫,請使用setTimeout。
[CasperJS waitForResource:如何獲取我已經等待的資源](http://stackoverflow.com/questions/24559234/casperjs-waitforresource-how-to-get-the-resource-ive-等待) – 2015-04-03 08:59:08
我正在與讓 - 大衛合作。根據我們所瞭解的內容,waitForResource將等待,直到當前Phantom實例可訪問給定資源,然後執行上一個導航步驟。我們試圖實現一些不同的東西:我們想循環訪問一個http,直到它返回200而不是404。我們很難用CasperJs來處理它,因爲它的異步特性。我們應該怎麼做? – Spiff 2015-04-03 15:21:16