python - 如何从whatsapp聊天中获取表情符号并通过python selenium将该表情符号发送给发件人
问题描述
这是代码。如何从whatsapp聊天中获取表情符号并通过python selenium将该表情符号发送给发件人
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
driver = webdriver.Chrome()
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 CHAT NAME')
searchbox.send_keys(Keys.RETURN)
input("Enter any key :")
chats = driver.find_elements_by_class_name("message-in")
if len(chats) > 6:
chats = chats[-6:]
for i in range(0, len(chats)):
try:
chat = chats[i].find_element_by_class_name("_24wtQ")
emojiclass = chats[i].find_elements_by_class_name("_3ExzF")
emoji = driver.find_element_by_css_selector("img").get_attribute("src")
print(emoji)
except Exception as e:
print(e)
请帮我
解决方案
如果它包含文本、表情符号或文本和表情符号,则 Web 元素没有变化。
它是一种文本消息格式。
因此,您无法根据元素类名称或任何其他属性来区分它是否包含表情符号。
您所能做的就是提取(每条)短信,然后检查该文本字符串是否包含表情符号。
UPD
此 XPath 将为您提供所有传入消息的表情符号:
//div[@class='_1gL0z']//div[contains(@class,'message-in')]//span[@class='gejrB']
这将为您提供对话中最后传入的表情符号:
(//div[@class='_1gL0z']//div[contains(@class,'message-in')]//span[@class='gejrB'])[last()]
如果您必须获得包含该表情符号的最后一条消息,而不仅仅是表情符号本身,试试这个
(//div[@class='_1gL0z']//div[contains(@class,'message-in')]//span[@class='gejrB'])[last()]/..
或这个
(//div[@class='_1gL0z']//div[contains(@class,'message-in')]//span[@class='gejrB'])[last()]/../..
推荐阅读
- java - 将一列拆分为多列
- python - pip3.6 install mysqlclient==1.3.12 失败并出现错误:未知类型名称“my_bool”;你的意思是'布尔
- html - CSS中如何防止翻转卡重叠导航栏
- c# - 使用 CANoe 和 C# 接收 UDP 消息
- java - 在 try/catch 之外找不到变量
- ios - Firebase 时间戳解码
- php - 在 GAE php74 标准环境中将 PHP 错误与 HTTP 请求相关联
- python - 熊猫有条件地插入空行和块
- r - 如何通过跳过 n 行来选择行索引以在 dplyr 中使用 mutate 进行迭代?
- python - 为什么当我使用 groupby 时分位数(0.5)和中位数输出不同的结果?