首页 > 解决方案 > 如何从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)

请帮我

标签: pythonseleniumselenium-webdriverwhatsappemoji

解决方案


如果它包含文本、表情符号或文本和表情符号,则 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()]/../..

推荐阅读