@dmitred

Как авторизоваться в google с помощью Phantomjs?

Приветствую, коллеги!
Есть задача авторизоваться в google в phantomjs.
Что пробовал:
Нашел на просторах интернета срипт:
var webPage = require('webpage');
var page = webPage.create();

page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';


page.open('https://accounts.google.com/ServiceLogin/identifier?hl=ru&passive=true&continue=https%3A%2F%2Fwww.google.ru%2F%3Fgws_rd%3Dssl&flowName=GlifWebSignIn&flowEntry=AddSession', function (status) {

page.evaluate(function() {
var usernameField = "Email";
var elUsername = document.getElementById(usernameField);
elUsername.value = 'xxxxxxxx';
var buttonId = "next";
var elNext = document.getElementById(buttonId);
elNext.click();
setTimeout(function(){
var passwordId = "Passwd";
var elPassword = document.getElementById(passwordId);
elPassword.value = "xxxxx";
var btnNext = document.getElementById("signIn");
btnNext.click();
},4000);
});

setTimeout(function(){

console.log(page.content);
phantom.exit();
},8000);

});


Не выходит...

Посмотрел кнопку далее у нее другой id гугл видимо опять изменил что-то div id="identifierNext" role="button", но клик не работает(

Может у кого уже есть решение?

Спасибо за помощь ;)
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
alekciy
@alekciy
Вёбных дел мастер
Там сменился id не только у кнопки далее. Там все идентификаторы другие. А Далее видимо не жмется, потому что не введено имя пользователя. id для input там теперь "identifierId". А id для пароля вовсе какое автогенерируемое. Поэтому для начала нужно указать правильные id элементов.
Есть шанс, что идентификаторы динамические и каждый раз буду разные. Поэтому цепляться нужно за то, что не меняется - текст сообщений видимых пользователю. Например поле с паролем нужно искать отталкиваясь от div с текстом "Введите пароль".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы