Я пытаюсь ввести текст в текстовую область, используя селен. Это мой код:
text_area = self.driver.find_element_by_xpath('//textarea[@aria-label="Message..."]')
text_area.send_keys(message) #Where message contains emojis and other non-BMP characters
Ошибка:
Message: unknown error: ChromeDriver only supports characters in the BMP
Я пытался реализовать это с помощью javascript, как предложено в: Отправка смайликов с помощью send_keys () Селена
JS_ADD_TEXT_TO_INPUT = """
var elm = arguments[0], txt = arguments[1];
elm.value += txt;
elm.dispatchEvent(new Event('change'));
"""
self.driver.execute_script(JS_ADD_TEXT_TO_INPUT, text_area, message)
Это работает и обновляет текст в текстовой области, но как только вы делаете что-либо еще на странице, он исчезает.
Я наконец попытался использовать pyperclip и вставить сообщение в , как предложено в: Как ввести смайлики "Хот-дога" с помощью Python Selenium send_keys
pyperclip.copy(message)
text_area.send_keys(Keys.CONTROL,'v')
Это работает, но я остался недоволен этим решением, и чувствую, что должен быть лучший вариант, чем вставить его из буфера обмена. Кто-нибудь знает какие-нибудь лучшие способы сделать это?