【发布时间】:2020-06-23 02:11:39
【问题描述】:
我正在尝试在 whatsapp 网络和我的消息中自动发送消息,使用一些很酷的表情符号,但如您所知,chromedriver 默认情况下不使用send_keys() 输入表情符号字符。
所以为了测试,我的代码基于这个answer here,它工作正常,但是如果我尝试发送多个 unicode 表情符号,就会出现这个错误:
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: missing command parameters
我当前的代码示例:
chatBox = self.driver.find_element_by_class_name('_3uMse')
time.sleep(2)
chatBox.click()
JS_ADD_TEXT_TO_INPUT = """
var elm = arguments[0], txt = arguments[1];
elm.value += txt;
elm.dispatchEvent(new Event('change'));
"""
text = u'\uD83D\uDC6A'
#using this emoji, it works
#text = u'\u263A'
self.driver.execute_script(JS_ADD_TEXT_TO_INPUT, chatBox, text)
chatBox.send_keys(text)
为什么会这样?
编辑 1 - 包含有助于调试的建议更改的完整代码
self.driver.get('https://web.whatsapp.com/')
# time to scan qrcode
time.sleep(8)
contact = self.driver.find_element_by_xpath(f"//span[@title='<NAME_OF_SAVED_CONTACT>']")
contact.click()
chatBox = WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.CLASS_NAME, "_3uMse")))
chatBox.click()
JS_ADD_TEXT_TO_INPUT = """
var elm = arguments[0], txt = arguments[1];
elm.value += txt;
elm.dispatchEvent(new Event('change'));
"""
text = u'\uD83D\uDC6A'
self.driver.execute_script(JS_ADD_TEXT_TO_INPUT, chatBox, text)
chatBox.send_keys(text)
【问题讨论】:
标签: python selenium google-chrome selenium-webdriver selenium-chromedriver