2013-08-21 39 views
2

我想爲網頁的外部文件設置超時時間。使用CasperJS設置網頁外部文件的超時時間

例如,我的頁面index.php其中包含圖像1.jpg,2.jpg3.jpg1.jpg2.jpg很小,加載很快,但是3.jpg非常大。我希望在網頁完全加載後立即進入下一步,或者在開始之後最多10秒。

如何用CasperJS(或PhantomJS)做到這一點?

+0

你的意思是你想跳過加載3.jpg直到頁面完全加載? –

+0

我想這就是你要找的東西:http://stackoverflow.com/questions/1033398/execute-javascript-when-page-has-fully-loaded – Disa

+0

我想用CasperJS來做到這一點。我希望在min(all_page_loaded,10_seconds)期間等待頁面加載。 – Kevin

回答

1

如果使用jQuery,jQuery的負載()也將幫助你的目標:

http://api.jquery.com/load-event/

例如:

$(window).load(function(){ 
alert('This alert will be shown after the page is fully loaded with all images etc.'); 
}); 

香草JS,嘗試window.onload = function(){ ... }

3

@Kevin - 沒有看到你的代碼就幾乎不可能真正理解你在問什麼。我認爲,由於您似乎不需要提供關於文檔加載的建議,因此您正在尋找的超時作爲場景/測試的一部分是100%。

這就是說,你需要考慮將是異步的行動卡斯帕測試框架又是什麼:http://docs.casperjs.org/en/latest/modules/tester.html#begin再加上卡斯帕選擇位:http://docs.casperjs.org/en/latest/selectors.html

您應該能夠運行casper.start或卡斯帕。等待。 http://docs.casperjs.org/en/latest/modules/casper.html#wait Casper.start似乎沒有超時作爲參數,因此如果您在超時過期後詢問是否移動到casper.start的下一步,那將會更加複雜。

總之,請提供一個更好的解釋你的實際問題。 PS。除非你真的想測試負載(如佈局或截圖測試)的影像,然後你可以隨時通過運行卡斯帕,並沒有它加載圖片的標誌:

var casper = require('casper').create({ pageSettings: { loadImages: false }})