function checkMessages(user, password, callback) {
var page = require('webpage').create();
page.open('http://mywebpage.com', function (status) {
if (status === 'fail') {
console.log(user + ': ?');
} else {
page.evaluate(function (user, password) {
document.querySelector('input[name=username]').value = user;
document.querySelector('input[name=password]').value = password;
document.querySelector('button[name=yt0]').click();
}, user, password);
waitFor(function() {
return page.evaluate(function() {
var el = document.getElementById('fancybox-wrap');
if (typeof(el) != 'undefined' && el != null) {
return true;
}
return false;
});
}, function() {
var messageCount = page.evaluate(function() {
var el = document.querySelector('span[class=unread-number]');
if (typeof(el) != 'undefined' && el != null) {
return el.innerText;
}
return 0;
});
console.log(messageCount);
});
}
page.close();
callback.apply();
});
}
По какой-то причине я просто не могу заставить это работать. PhantomJS жалуется: «Ошибка: не может получить доступ к члену« оценить »удаленного объекта QObject. Это потому, что у меня есть несколько page.evaluates?PhantomJS не могут получить доступ к члену 'оценить' удаленных QObject
Так сразу после моего console.log (MessageCount) является правильным местом для этих двух? – phantomguy
Да, это подходящее место. Я добавил правильную реализацию 'waitFor()'. –