Не получается имитировать нажатие клавиши Javascript, которая «разблокирует» и нажимает кнопку «Опубликовать» Reddit? - PullRequest
0 голосов
/ 14 февраля 2020

the element's event listenersenter image description here Я пробовал следующее, и они не работают:

document.querySelector("[placeholder=Title]").dispatchEvent(new KeyboardEvent('keypress',{'key':'70'}));

document.querySelector("[placeholder=Title]")..dispatchEvent(new KeyboardEvent('keyup',{'key':'70'}));


document.querySelector("[placeholder=Title]").value = 'titleTextProgramaticallyInput'[![jav][1]][1]

Элемент заголовка мешает мне программно нажав «Опубликовать»

URL: https://www.reddit.com/user/ ваше имя пользователя / отправить

enter image description here

1 Ответ

1 голос
/ 15 февраля 2020

Reddit использует реакцию, поэтому эти поля ввода скрыты за слоями сложности. Смотрите это SO post .

Используя инструкции оттуда, вы можете осветить кнопку post, вызвав ее действительный метод set из прототипа textArea:


var titleElement = document.querySelector("[placeholder=Title]");
var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, "value").set;
nativeInputValueSetter.call(titleElement, 'react 16 value');

var triggerUpdateEvent = new Event('input', { bubbles: true});
titleElement.dispatchEvent(triggerUpdateEvent);

...