我想讓我的腳本等待,直到網頁完全加載爲此,我正在使用JavaScript表達式「window.document.readyState」它將如果頁面完全加載,則返回「完整」。browser.executeScript(返回window.document.readyState)在量角器中沒有得到解決
function waitForWebpageLoadingCompletely(callback) {
try {
var status="Incomplete";
do {
var flag = browser.executeScript("return window.document.readyState ;");
//console.log(flag)
flag.then(function (state) {
console.log(state);
if(state==="complete")
callback();
else {
//status = "Incomplete";
console.log(state);
}
},function (err) {
console.log(err)
})
}while(!(status ==="complete"));
} catch (e) {
expect(false);
console.log(e);
callback();
}
}
但executeScript不解決任何成功或錯誤。執行停在這一行。而一段時間之後,給出以下eror: 致命錯誤:CALL_AND_RETRY_LAST分配失敗 - 的JavaScript堆出來的內存
這很可能是因爲您正在同步循環內調用異步方法('executeScript')。 –
@Florent B,這將是什麼解決方案?謝謝。 –
看看[browser.wait](http://www.protractortest.org/#/api?view=webdriver.WebDriver.prototype.wait)。注意,等待'complete'狀態是無用的,因爲驅動程序默認已經在等待這個狀態。 –