Подтвердить что ты не робот

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();
        });
    }
});

Кто-нибудь может показать мне, как это сделать? Я осмотрел здесь и на других сайтах, но ничего не работало.

4b9b3361

Ответ 1

Недостаточно отобразить страницу сразу после нажатия. Вы должны дать время веб-движка, чтобы сделать все вызовы требуемыми и выполнить результирующий JavaScript.

После вашего вызова оценить следующее:

window.setTimeout(
  function () {
    page.render( 'google.png' );
    phantom.exit(0);
  },
  5000 // wait 5,000ms (5s)
);

Кстати, клик может работать или не работать в зависимости от того, какой элемент он есть. Если это не работает, я предлагаю вам искать в Интернете, как нажимать на DIV или какой бы то ни было элемент (это метод, который включает в себя создание события мыши).