Ввод не-BMP символов в текстовое поле с использованием селена python - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь ввести текст в текстовую область, используя селен. Это мой код:

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')

Это работает, но я остался недоволен этим решением, и чувствую, что должен быть лучший вариант, чем вставить его из буфера обмена. Кто-нибудь знает какие-нибудь лучшие способы сделать это?

...