【问题标题】:Selenium Chrome Driver(Python): Send emojisSelenium Chrome 驱动程序(Python):发送表情符号
【发布时间】:2020-10-19 17:49:20
【问题描述】:
当出现以下错误时,我正尝试使用 python 和 Selenium Chrome 驱动程序发送表情符号:
selenium.common.exceptions.WebDriverException: Message: unknown error: ChromeDriver only supports characters in the BMP
(Session info: chrome=86.0.4240.75)
我已经对该主题进行了一段时间的研究,并在 @GalBracha 的 C# in another Question 中找到了以下解决方法。
由于我根本不懂 C#,而且我对 Selenium 也不太熟悉,所以我想问一下是否有人知道 Python 中的类似解决方案。
谢谢
【问题讨论】:
标签:
python
selenium
google-chrome
selenium-chromedriver
【解决方案1】:
我在这里使用 Google 图片作为示例。您可以将 emoji 替换为所需的 emoji unicode。你可以找到代码here
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome()
browser.get('https://images.google.com/')
search = browser.find_element_by_xpath('/html/body/div[2]/div[2]/div[2]/form/div[2]/div[1]/div[1]/div/div[2]/input')
JS_ADD_TEXT_TO_INPUT = """
var elm = arguments[0], txt = arguments[1];
elm.value += txt;
elm.dispatchEvent(new Event('change'));
"""
emoji = u'\U0001F600'
browser.execute_script(JS_ADD_TEXT_TO_INPUT, search, emoji)
unicode 看起来很简单U+1F603。您需要做的就是在“U”看起来像\U000F603之前用\替换“+”和“000”