Как я вижу, вы не можете просто открыть несколько страниц с помощью page.open() в одном скрипте phantomjs. Потому что они начали работать одновременно. Я пробовал варианты с seTtimeout(), но они не работали. Поэтому мне нужно открыть первую страницу, выполнить некоторые действия, а затем закрыть ее. После этого мне нужно открыть другую страницу. Как я могу это достичь?Как открыть несколько страниц в последовательности (PhantomJS)?
var url = 'url-address-';
var referrer = '-url-address-/path';
page.customHeaders={'Authorization': 'Basic '+btoa(login+":"+password), 'Referer': referrer};
page.open(url, function(status){
if(status === 'fail')
{
console.log('Status: ' + status);
phantom.exit();
}
console.log('Status: ' + status);
page.render("1.png");
page.evaluate(function() {
var form = document.forms[0];
form.data1.value = 'mydata_name';
form.data2.value = 'mydata_surname';
form.submit();
});
setTimeout(function(){
var url = 'post-url-address';
var referrer = '-url-address-/refpath';
page.customHeaders={'Authorization': 'Basic '+btoa(login+":"+password), 'Referer': referrer};
body = 'submit-url=mydata_to_submit';
page.open(url, 'POST', body, function (status) {
//
// Here goes the error
// unable to load url: "post-url-address"
// error code: 5, description: Operation canceled
//
//
//setTimeout(function(){}, 5000)
console.log('Status: ' + status);
});
page.render("2.png");
var fs = require('fs');
fs.write(result, page.content, 'w');
console.log('Finished');
phantom.exit();
}, timeout);
});
Так что все это хорошо, пока я не открываю страницу для публикации данных. Не знаю, почему это происходит. Пытался изменить таймаут на 20-30 секунд - проблема остается. Не исключено, почему это происходит, не так ли?
Просьба предоставить полный сценарий, который воспроизводит эту проблему, так как это должно работать. Зарегистрируйтесь в ['onConsoleMessage'] (http://phantomjs.org/api/webpage/handler/on-console-message.html), [' onError'] (http://phantomjs.org/api/webpage /handler/on-error.html), ['onResourceError'] (http://phantomjs.org/api/webpage/handler/on-resource-error.html), [' onResourceTimeout'] (http: // phantomjs .org/api/webpage/handler/on-resource-timeout.html). Возможно, есть ошибки. –
okay, плохо регистрировать сообщения об ошибках – user3416803
Он загружает первую страницу правильно, а затем, когда дело доходит до сообщений, сценарий говорит 5, описание: Операция отменена. Я размещаю часть кода сейчас – user3416803