Phantomjs - Как заполнить форму, отправить и получить результаты?
Я не могу представить простой запрос.
Ниже приведен код, который я сделал, чтобы отправить "Тест" в форму поиска Google и распечатать результаты.
var url = 'http://www.google.com/',
page = new WebPage();
page.open(url, function(status) {
if (status !== 'success')
{
console.log('Unable to access network');
phantom.exit();
return;
}
else
{
page.includeJs("//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js", function() {
page.evaluate(function() {
$('#gbqfq').val("Test");
$("#gbqfba").click();
});
page.render('google.png');
phantom.exit();
});
}
});
Кто-нибудь может показать мне, как это сделать? Я осмотрел здесь и на других сайтах, но ничего не работало.
Ответы
Ответ 1
Недостаточно отобразить страницу сразу после нажатия. Вы должны дать время веб-движка, чтобы сделать все вызовы требуемыми и выполнить результирующий JavaScript.
После вашего вызова оценить следующее:
window.setTimeout(
function () {
page.render( 'google.png' );
phantom.exit(0);
},
5000 // wait 5,000ms (5s)
);
Кстати, клик может работать или не работать в зависимости от того, какой элемент он есть. Если это не работает, я предлагаю вам искать в Интернете, как нажимать на DIV или какой бы то ни было элемент (это метод, который включает в себя создание события мыши).