如果web應用程序有JS代碼如下所示:防止執行無限循環的js中的硒/ Phantomjs
for(i=0; i > -1; i++){var a=1}; // Infinite loop
我用硒/ Phantomjs瀏覽它,它就會永遠困。
我該如何解決這個問題? phantomjs是否可以選擇爲腳本執行設置超時時間?
如果web應用程序有JS代碼如下所示:防止執行無限循環的js中的硒/ Phantomjs
for(i=0; i > -1; i++){var a=1}; // Infinite loop
我用硒/ Phantomjs瀏覽它,它就會永遠困。
我該如何解決這個問題? phantomjs是否可以選擇爲腳本執行設置超時時間?
使用resourceTimeout
var page = require('webpage').create();
page.settings.resourceTimeout = 5000; // 5 seconds
它似乎不工作。 – user1571234
嘗試鏈接的第一個答案 – Raskayu
不,你不能。你使用哪個版本的PhantomJS?順便說一句,任何瀏覽器都應該在打開這樣的網站時凍結。 –
我正在使用2.1.1。所以這個問題似乎無法解決? – user1571234
由於JavaScript是單線程的,PhantomJS通過JavaScript訪問頁面上下文,因此頁面上下文中的無限循環將凍結頁面。這只是糟糕的編程。無論如何,你可能會試圖通過代理或類似的東西來改變這個瘋狂的頁面JavaScript。 –