gpt4 book ai didi

javascript - browser.executeScript(return window.document.readyState) 未在 Protractor 中得到解析

转载 作者:行者123 更新时间:2023-12-03 02:50:44 26 4
gpt4 key购买 nike

我想让我的脚本等到网页完全加载,为此我使用javascript表达式“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 没有解析任何成功或错误。执行在此行停止。一段时间后,它给出以下错误: fatal error :CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足

最佳答案

您需要使用 browser.wait - 您在评论中提到您需要等待页面标题,因此您需要编写如下内容:

var WaitForPage = function(pageTitle, timeout = 30000){
var deferred = promise.defer();
browser.waitForAngular().then(function(){
var el = element(by.cssContainingText('h1', pageTitle));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(el), timeout).then(function(){
deferred.fulfill();
});
});
return deferred.promise;
}

此函数将等待包含指定 pageTitle 文本的 h1 类型的元素长达 30000 毫秒。根据您的具体情况进行适当更改,然后在继续之前调用 WaitforPage('title')

关于javascript - browser.executeScript(return window.document.readyState) 未在 Protractor 中得到解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47868309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com