@oo22maxi

Как в PhantomJS выполнять сценарий во всех iframe?

Добрый вечер друзья. Подскажи пожалуйста как PhantomJS заставить выполнят скрипт, пытаюсь заставить фантом нажать на капчу recaptcha но не получается, если я правильно понял, то фантом игнорирует все фреймы. (Так ли это?)

Сам код
var webPage = require('webpage');
var page = webPage.create();

page.settings.userAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36",
page.viewportSize = { width: 1920, height: 1080 };

page.open('https://www.google.com/recaptcha/api2/demo', function (status) {
 
 console.log('Status: ' + status);

  window.setTimeout( function() {

       // Скрипт взят из расширения для chrome, работает замечательно. Там в файле manifest.json включена опция 
       // all_frames : true ( выполнять сценарий во всех фреймах, из за этого и подумал что он игнорирует фреймы)
       var isRecaptchaFrame = function() {
          return /https:\/\/www.google.com\/recaptcha\/api2\/anchor/.test(window.location.href);
        };

        var captchaInterval = setInterval(function() {
          if (isRecaptchaFrame()) {
            clearInterval(captchaInterval);
            document.getElementsByClassName('recaptcha-checkbox-checkmark')[0].click();
          }
        }, 500);
        // end

        window.setTimeout( function() {
            page.render('/screenshot.jpeg');
            phantom.exit();
        }, 2500);

  }, 5500);
});


Само расширение здесь.

Подскажите, как мне это реализовать, куда копать?
  • Вопрос задан
  • 23 просмотра
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы