Потрібно емулювати відправку повідомлення на сторінці https://labs.perplexity.ai з допомогою чистого JS, без використання puppeteer, playwright і подібних емуляторів. Тобто код має працювати в консолі браузера.
Ось такий код з різними емуляціями не працює, сторінка не розпізнає введення тексту у полі і не дає відправити повідомлення
const textarea = document.querySelector('textarea');
const submitButton = document.querySelector('button[aria-label="Submit"]');
function typeText(text) {
const clickEvent = new MouseEvent('click', {
bubbles: true,
cancelable: true,
view: window
});
textarea.dispatchEvent(clickEvent);
for (let i = 0; i < text.length; i++) {
const char = text.charAt(i);
const inputEvent = new InputEvent('input', { data: char, inputType: 'insertText' });
const compositionStartEvent = new CompositionEvent('compositionstart', { data: char });
const compositionUpdateEvent = new CompositionEvent('compositionupdate', { data: char });
const compositionEndEvent = new CompositionEvent('compositionend', { data: char });
const keydownEvent = new KeyboardEvent('keydown', { key: char, keyCode: char.charCodeAt(0) });
const keyupEvent = new KeyboardEvent('keyup', { key: char, keyCode: char.charCodeAt(0) });
const changeEvent = new Event('change');
textarea.dispatchEvent(inputEvent);
textarea.dispatchEvent(compositionStartEvent);
textarea.dispatchEvent(compositionUpdateEvent);
textarea.dispatchEvent(compositionEndEvent);
textarea.dispatchEvent(keydownEvent);
textarea.value += char;
textarea.dispatchEvent(keyupEvent);
textarea.dispatchEvent(changeEvent);
}
submitButton.focus();
const submitClickEvent = new MouseEvent('click', {
bubbles: true,
cancelable: true,
view: window
});
submitButton.dispatchEvent(submitClickEvent);
}
typeText('Hello, world!');