Как вставить в инпут слово и отправить его? (В браузере(ютуб))
вопрос простой и глупый, но надеюсь на вашу помощь.
Я хочу вставить в инпут на странице слово и отправлять его раз в минуту(делаю через обычную консоль). Написать цикл с таймером не проблема, но как добраться до самого инпута, как засунуть туда своё слово и как это отправить я не знаю.
document.querySelector(".style-scope yt-live-chat-text-input-field-renderer").dispatchEvent(new Event('change'))
я попробовал вот это, в браузере дает true, но че делать дальше хз))
Ответы (2 шт):
Получаем елемент по его id. Если там есть какой то не нужный нам текст, то используем innerHTML = '', если пустой, то можно и без этого а просто .innerHTML = 'Тест'. Должно работать
let divInput = document.getElementById("input");
divInput.innerHTML = '';
divInput.innerHTML = 'Тест';
Потом находим кнопку и нажимаем её
let button = document.getElementById('Btn');
button.click();
Привожу пример работающего кода
const startSpam = (message, sec) => {
let messageCount = 1;
const intervalTime = sec * 1000;
setInterval(() => {
const iFrame = document.querySelector(
'iframe.style-scope.ytd-live-chat-frame',
);
const input = iFrame.contentDocument.querySelector(
'#input.yt-live-chat-text-input-field-renderer',
);
input.focus();
// вот тут нужно менять сообщение с текстом(например убрать
// (${messageCount}) чтобы не выводить количество
input.innerText = `${message} (${messageCount})`;
input.dispatchEvent(new Event('input'));
setTimeout(() => {
const sendButton = iFrame.contentDocument.querySelector(
'button.yt-spec-button-shape-next[aria-label="Отправить"]',
);
if (sendButton) {
sendButton.click();
}
}, 100 + messageCount);
messageCount++;
}, intervalTime || 1000);
};
startSpam('Начинаем приколы!', 60);
// Выведет в чат стрима "Начинаем приколы! (1)" "Начинаем приколы! (2)"
// и так далее будет спамить раз в минуту
ВАЖНО: если у вас стоит язык в браузере отличный от русского то в константе sendButton
, а именно в querySelector надо поменять [aria-label="Отправить"]
слово "Отправить" на слово из вашего языка, для английского это "Send"