С помощью javascript отправить комментарий в instagram

184
17 июня 2019, 08:40

Хочу написать и отправить комментарий с помощью javascript в instagram. Но проблема в том, что не хочет отправляться.

Написал код таким образом:

//В форму добавляем комментарий
document.getElementsByClassName('Ypffh')[0].textContent = "Это комментарий!";
//Ждем пару секунд
setTimeout(function() {
//убираем disabled из формы отправки
document.querySelector("#react-root > section > main > section > div:nth-child(1) > div > article:nth-child(1) > div.eo2As > section.sH9wk._JgwE > div > form > button").disabled = true;
//нажимаем отправить
document.querySelector("#react-root > section > main > section > div:nth-child(1) > div > article:nth-child(1) > div.eo2As > section.sH9wk._JgwE > div > form > button").click();
}, 2000);

Но не реагирует instagram. Почему комментарий в instagram не отправляется с помощью javascript? (может чего-то не хватает)

Answer 1

Долго ломал голову, но все же нашел решение. Работает в мобильной версии.

У каждого элемента, которым "владеет" реакт есть метод __reactInternalInstance$XXXXXX. В нем можно найти много интересного, в том числе и пропсы и хэндлеры элемента. К onChange мы и будем обращаться. Сначала нажимаем на кнопку комментария. Затем вычленим из textarea этот метод (__reactInternalInstance$XXXXXX), затем в его пропсах найдем onChange и передадим ему "искусственный" объект события {target:{value:"Это коммент"}}. Реакт подумает, что мы что-то пишем и все сделаем за нас. Кнопка активируется и мы на нее нажмем. Зайди на страницу с постом и выполни код. Если что-то непонятно - спрашивай.

window.FindReact = function(dom) {
  for (var key in dom) {
    if (key.startsWith("__reactInternalInstance$")) {
      return dom[key];
    }
  }
  return null;
};
document.querySelector("#react-root > section > main > div > div:nth-child(1) > article:nth-child(1) > div > section > span:nth-child(2) > button").click();
setTimeout(() => {
  FindReact(document.querySelector("#react-root > section > main > div > div:nth-child(1) > article:nth-child(1) > div > section > div > form > textarea")).memoizedProps.onChange({
    target: {
      value: "Это коммент"
    }
  });
  document.querySelector("#react-root > section > main > div > div:nth-child(1) > article:nth-child(1) > div > section > div > form > button").click();
}, 1000);
READ ALSO
Анимация меню в Wordpress

Анимация меню в Wordpress

Есть сайт на вордпресеИ есть там такое меню с кнопкой

125
Условия для маски input в зависимости от количества символов

Условия для маски input в зависимости от количества символов

Есть jquerymaskedinput с помощью которой создана маска для input с классом "nic" для ввода значений в формате 1234 х 1234 х 1234

94
let или this в объекте?

let или this в объекте?

в классе Game я создаю каркас html для мини игрыВопрос: все "переменные" (this

127
datatimepicker c разделением расписания времени на am и pm

datatimepicker c разделением расписания времени на am и pm

Есть подобный календарь+расписаниеРасписание разделено на "утро" и "день"

150