2016-11-20 3 views
0

Миссия

Я пытаюсь заполнить поля имени пользователя и пароля, а затем нажмите кнопку входа в систему, чтобы войти в Instagram, используя Javascript.Как войти в Instagram с помощью Javascript?

То, что я пытался (с правильными учетными данными для входа):

Instagram Login Page

document.querySelector('[name=username]').value = "USERNAME"; 
document.querySelector('[name=password]').value = "PASSWORD"; 

var buttons = document.getElementsByTagName('button'); 
for (var i = 0; i < buttons.length; i++) { 
    if (buttons[i].innerText == 'Log in') { 
     buttons[i].click(); 
     break; 
    } 
} 

Проблема

Даже если имя пользователя и пароль поля содержат правильное имя пользователя и пароль, я получаю это ошибка:

The username you entered doesn't belong to an account. Please check your username and try again.

Вопрос

Можно ли войти в Instagram с помощью Javascript? Если да, то как это можно сделать?

ответ

0

Коренная проблема заключается в том, что Instagram построен с использованием React, а в React пользовательский интерфейс построен из «компонентных» объектов, которые в случае необходимости обновляют DOM с их состоянием. Изменяя значение текстового поля через DOM, состояния компонентов не обновляются, поэтому код React Instagram не знает о новом значении. Когда вы нажимаете кнопку, исходное значение (которое пусто) отправляется в запросе на вход.

Если вы хотите снять это, вам придется найти способ обмануть React в обновлении состояния компонента. Если бы я был вами, я бы поиграл с запуском синтетического события на одном из элементов, чтобы React подумал, что пользователь что-то набрал. Хотя я не эксперт по React, поэтому я не могу больше этого сделать.

Смежные вопросы