selenium,如何使用 send_keys() 在 whatsapp 中将表情符号发送给发件人?
selenium ,how to send emoji to sender in whatsapp with send_keys()?
selenium,如何使用 send_keys() 向 WhatsApp 中的发件人发送表情符号? .我不想通过单击那个表情符号按钮来发送表情符号,但我只想复制在 whatsapp 的短信中发送给我们的表情符号,然后将相同的表情符号发送给发件人。我在@cruisepandey
的帮助下尝试过这个
chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
上面的代码打印了聊天的所有表情符号。但是通过使用此代码,这会产生
的错误
chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
type.send_keys(chat.get_attribute('alt'))
此代码给出错误 = 消息:未知错误:ChromeDriver 仅支持 BMP 中的字符
chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
pyperclip.copy(chat.get_attribute('alt'))
type.send_keys(Keys.CONTROL + "V")
time.sleep(1)
我试过这个代码来发送表情符号,但是通过使用它实际上它可以工作但是它在 whatsapp 类型栏中发送两次但是在终端中只打印一次特定的表情符号,例如它在终端“”和相同的代码类型中打印这在 whatsapp typebar "" 中。任何人都可以帮助我为什么它在 WHATSAPP TYPEBAR 中打印两次但在终端中只打印一次???我还想将该表情符号附加到列表中,但是在附加该表情符号时,打印列表后,它会给出一个包含元素 ="None" 的列表。这是完整的代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
import time
import pyperclip
driver = webdriver.Chrome(r'C:\Users\PRANAV PATIL\Downloads\chromedriver.exe')
driver.get(r'https://web.whatsapp.com/')
searchbox = WebDriverWait(driver,
10).until(expected_conditions.presence_of_element_located((By.XPATH,
"//div[@id='side']//div//div//label//div//div[@contenteditable='true']")))
searchbox.send_keys('') #enter your sender's name
searchbox.send_keys(Keys.RETURN)
time.sleep(2)
chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
pyperclip.copy(chat.get_attribute('alt'))
type.send_keys(Keys.CONTROL + "V")
time.sleep(1)
所以基本上,您想 send_keys
到 type
你试过这个吗:
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
type.send_keys(chat.get_attribute('alt'), Keys.RETURN)
更新 1:
看来您不能简单地将表情符号等特殊字符发送到 chromedriver,请尝试更改您的浏览器(更改为 Firefox,看看是否有帮助)应该可以帮助您解决此问题。
此外,如果您想坚持使用 Chrome,您可以像这样尝试一下:
JS_ADD_TEXT_TO_INPUT = """
var elm = arguments[0], txt = arguments[1];
elm.value += txt;
elm.dispatchEvent(new Event('change'));
"""
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
driver.execute_script(JS_ADD_TEXT_TO_INPUT, type, chat.get_attribute('alt'))
更新 2:
使用 FireFox :
driver = webdriver.Firefox(executable_path = "D:\geckodriver.exe")
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://web.whatsapp.com/")
wait = WebDriverWait(driver, 20)
try:
searchbox = WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div[class*='copyable-text selectable-text']")))
searchbox.send_keys('Anvesh') # enter your sender's name
searchbox.send_keys(Keys.RETURN)
print('search was successful')
except:
print('there were some error while searching for name')
pass
time.sleep(2)
chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
type.send_keys(chat.get_attribute('alt'))
time.sleep(1)
关于输入两次:而不是 type.send_keys(Keys.CONTROL + "V")
,尝试如下所示。它对我有用。
type.send_keys(Keys.CONTROL+"v")
selenium,如何使用 send_keys() 向 WhatsApp 中的发件人发送表情符号? .我不想通过单击那个表情符号按钮来发送表情符号,但我只想复制在 whatsapp 的短信中发送给我们的表情符号,然后将相同的表情符号发送给发件人。我在@cruisepandey
的帮助下尝试过这个chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
上面的代码打印了聊天的所有表情符号。但是通过使用此代码,这会产生
的错误chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
type.send_keys(chat.get_attribute('alt'))
此代码给出错误 = 消息:未知错误:ChromeDriver 仅支持 BMP 中的字符
chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
pyperclip.copy(chat.get_attribute('alt'))
type.send_keys(Keys.CONTROL + "V")
time.sleep(1)
我试过这个代码来发送表情符号,但是通过使用它实际上它可以工作但是它在 whatsapp 类型栏中发送两次但是在终端中只打印一次特定的表情符号,例如它在终端“”和相同的代码类型中打印这在 whatsapp typebar "" 中。任何人都可以帮助我为什么它在 WHATSAPP TYPEBAR 中打印两次但在终端中只打印一次???我还想将该表情符号附加到列表中,但是在附加该表情符号时,打印列表后,它会给出一个包含元素 ="None" 的列表。这是完整的代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
import time
import pyperclip
driver = webdriver.Chrome(r'C:\Users\PRANAV PATIL\Downloads\chromedriver.exe')
driver.get(r'https://web.whatsapp.com/')
searchbox = WebDriverWait(driver,
10).until(expected_conditions.presence_of_element_located((By.XPATH,
"//div[@id='side']//div//div//label//div//div[@contenteditable='true']")))
searchbox.send_keys('') #enter your sender's name
searchbox.send_keys(Keys.RETURN)
time.sleep(2)
chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
pyperclip.copy(chat.get_attribute('alt'))
type.send_keys(Keys.CONTROL + "V")
time.sleep(1)
所以基本上,您想 send_keys
到 type
你试过这个吗:
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
type.send_keys(chat.get_attribute('alt'), Keys.RETURN)
更新 1:
看来您不能简单地将表情符号等特殊字符发送到 chromedriver,请尝试更改您的浏览器(更改为 Firefox,看看是否有帮助)应该可以帮助您解决此问题。
此外,如果您想坚持使用 Chrome,您可以像这样尝试一下:
JS_ADD_TEXT_TO_INPUT = """
var elm = arguments[0], txt = arguments[1];
elm.value += txt;
elm.dispatchEvent(new Event('change'));
"""
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
driver.execute_script(JS_ADD_TEXT_TO_INPUT, type, chat.get_attribute('alt'))
更新 2:
使用 FireFox :
driver = webdriver.Firefox(executable_path = "D:\geckodriver.exe")
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://web.whatsapp.com/")
wait = WebDriverWait(driver, 20)
try:
searchbox = WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div[class*='copyable-text selectable-text']")))
searchbox.send_keys('Anvesh') # enter your sender's name
searchbox.send_keys(Keys.RETURN)
print('search was successful')
except:
print('there were some error while searching for name')
pass
time.sleep(2)
chats = driver.find_elements_by_css_selector("img[data-plain-text][crossorigin='anonymous']")
for chat in chats:
print(chat.get_attribute('alt'))
type = driver.find_element_by_xpath('//div[@data-tab="6"]')
type.send_keys(chat.get_attribute('alt'))
time.sleep(1)
关于输入两次:而不是 type.send_keys(Keys.CONTROL + "V")
,尝试如下所示。它对我有用。
type.send_keys(Keys.CONTROL+"v")