Расширение Chrome: проблема с текстом заполнителя в XPath и ContentEditableJavascript

Форум по Javascript
Ответить
Anonymous
 Расширение Chrome: проблема с текстом заполнителя в XPath и ContentEditable

Сообщение Anonymous »

Я изучаю, как создать расширение для Google Chrome, и мой первый проект — автоматическая отправка сообщений списку моих клиентов через WhatsApp Web. Я пытаюсь добиться этого, получая элемент поля поиска, используя его XPath, и вставляя контактную информацию. Однако я столкнулся с некоторыми проблемами. Вот код, который я использую:

Код: Выделить всё

const waitTimeout = (ms) => new Promise(resolve => setTimeout(resolve, ms));

const typeInTextBox = async (selector, number) => {

let el = document.evaluate(selector,
document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

for (var i = 0; i < 5; i++) {
el.focus();
document.execCommand('selectAll');
document.execCommand('insertText', false, number);
el.dispatchEvent(new Event('change', {bubbles: true}));
el.blur();
await waitTimeout(2000);

if (el.textContent == number) {
return true;
}
}
return false;
}

await typeInTextBox('/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/span/div/span/div/div[1]/div[2]/div[2]/div/div', 'Hello World')
Как видно из изображения ниже, код работает частично. Контактная информация вставляется в поле поиска, но текст-заполнитель не исчезает, и ничего не происходит.
[img]https:// i.sstatic.net/lGiLl2H9.png[/img]

Похоже, что текст-заполнитель исчезает только при нажатии на поле поиска, но эта проблема не решается даже путем вызова функция щелчка или фокусировки. Есть ли какое-нибудь обходное решение этой проблемы?
Элемент, полученный с помощью XPath, является атрибутом contenteditable.

Подробнее здесь: https://stackoverflow.com/questions/793 ... nteditable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»