我想送一份:heart:带有硒的表情符号send_keys()
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome('./chromedriver')
driver.get("https://web.whatsapp.com/")
wait = WebDriverWait(driver, 600)
message = driver.find_elements_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div/div[2]')[0]
message.send_keys(":heart:")
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用并发送字符串':heart:'.
你能否建议如何正确地做到这一点?
小智 10
出色地,
\n这是一个解决方法!希望它有效!
\ntext_element = driver_trader.find_element_by_xpath('xpath')\ntext = '\xe2\x9a\xaa'\n\ndriver.execute_script("arguments[0].innerHTML = '{}'".format(text),text_element)\ntext_element .send_keys('.')\ntext_element .send_keys(Keys.BACKSPACE)\nRun Code Online (Sandbox Code Playgroud)\n
这是一个棘手的方法。我们可以借助 JavaScript 和driver.execute_scriptJS 代码。您可以使用此函数来执行此操作:
from selenium import webdriver
from selenium.webdriver.common.by import By
import chromedriver_autoinstaller
chromedriver_autoinstaller.install()
driver = webdriver.Chrome()
def paste_content(driver, el, content):
driver.execute_script(
f'''
const text = `{content}`;
const dataTransfer = new DataTransfer();
dataTransfer.setData('text', text);
const event = new ClipboardEvent('paste', {{
clipboardData: dataTransfer,
bubbles: true
}});
arguments[0].dispatchEvent(event)
''',
el)
# Go to a page
driver.get('https://some-random-site-as-you-wish.com')
# Find the input box
input_el = driver.find_element(By.XPATH, '//some-xpath')
msg = 'Done! '
paste_content(driver, input_el, msg)
Run Code Online (Sandbox Code Playgroud)
小智 6
伙计们。我发现了一种非常简单但功能强大的方法,可以使用 Selenium 将表情符号添加到 WhatsApp
Message_box.send_keys(':emoji' u'\ue007') # You just have to enter the code cording to the next page
Run Code Online (Sandbox Code Playgroud)
https://gist.github.com/hkan/264423ab0ee720efb55e05a0f5f90887
你不能直接这样做。您需要通过 JavaScript 来完成此操作。一旦 Javascript 被正确格式化,您需要通知侦听器。
在此之前,您需要找到您想要使用的任何表情符号的 unicode。要获取任何表情符号的代码点,可以使用以下网站: https://emojipedia.org/ 搜索任何表情符号,在页面底部,将会有它的代码点。
要将 JavaScript 的代码点转换为 unicode,请使用以下网站: https: //r12a.github.io/app-conversion/
输入代码点并将值复制到其 javascript 框中。一旦你有了它,就可以使用 JavaScript,如下所示:
JS_ADD_TEXT_TO_INPUT = """
var elm = arguments[0], txt = arguments[1];
elm.value += txt;
elm.dispatchEvent(new Event('change'));
"""
elem = driver.find_element_by_id('<Id of your webelement>')
text = u'\u2764'
driver.execute_script(JS_ADD_TEXT_TO_INPUT, elem, text)
Run Code Online (Sandbox Code Playgroud)
2764 是心形表情符号的 unicode。希望这对您想要插入 Whatsapp 的任何类型的表情符号有所帮助!
编辑:对于更复杂的表情符号:您需要添加多个 unicode,例如家庭表情符号:\uD83D\uDC6A