Код: Выделить всё
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
Мобильная версия