Я пишу функцию, чтобы ждать элемента, вот моя функция:Ожидание элемента без SetTimeout в PhantomJS
function waitForElement(query){
var res="null";
var start=Date.now();
do{
res=page.evaluate(function(query) {
return document.querySelector(query)+"";
}, query);
} while (res==="null" && Date.now()-start<=100000);
console.log(Date.now()-start);
console.log(res.toString());
return res!=="null";
}
В page.open()
, я называю эту функцию и результат «нулевой». Но если я ставлю вызов функции в setTimeout()
, он будет работать.
setTimeout(function(){
page.render('afterLogin.png');
waitForElement('ul.coach li');
console.log('Exit');
phantom.exit();
}, 50000);
Может кто-нибудь объяснить мне, что здесь произошло?