我正在尝试制作一个程序,如果其他人发送消息,它会在 WhatsApp 上发送消息,但我不知道如何检查何时发送了 WhatsApp 消息。
我不需要阅读消息的内容,但它会是一个奖励
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# messages to send
messages = ["Message 1", "Message 2"]
options = Options()
options.add_argument("--user-data-dir=chrome-data")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.binary_location = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
driver = webdriver.Chrome(r'C:\ProgramData\chocolatey\lib\chromedriver\tools\chromedriver.exe', options=options)
driver.maximize_window()
driver.get('https://web.whatsapp.com') # must be pre-authenticated
time.sleep(20)
#Recepient Name
driver.find_element_by_xpath("//*[@title='example]").click()
for message in messages:
driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div/div[2]').send_keys(message)
driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[3]/button/span').click()
time.sleep(5)
任何帮助将不胜感激
最佳答案
当您发送消息时,消息右下角有一个小图标,您可以获取此元素并检查 accessible_name
属性是否为 "Sent"
,“阅读”
或 “已交付”
。
例子如下: Icon you need to locate
if ".m4v" in file_path or ".mp4" in file_path or ".3gpp" in file_path or ".mov" in file_path:
is_sent = self.wait_fast.until(ec.visibility_of_element_located((By.CSS_SELECTOR, "#main > div._2gzeB > div > div._33LGR > div._3K4-L > div._2wUmf._1q25n.message-out.focusable-list-item > div > div.Nm1g1._22AX6 > div.copyable-text > div > div._19jKW > div > div > span")))
else:
is_sent = self.wait_fast.until(ec.visibility_of_element_located((By.CSS_SELECTOR, "#main > div._2gzeB > div > div._33LGR > div._3K4-L > div._2wUmf._1q25n.message-out.focusable-list-item > div > div.Nm1g1._22AX6 > div.cm280p3y.f4q7vbcz.ocd2b0bc.folpon7g.aa0kojfi.snweb893.g0rxnol2.jnl3jror.copyable-text > div > div.lrw9n60e.lhggkp7q.fz4q5utg.b9fczbqn > div > div > span")))
我正在使用 CSS_SELECTOR
,选择器会根据消息的类型而有所不同,无论是文本、图像还是视频。
找到它后,您可以检查 accessible_name
属性是 "Sent"
、"Read"
还是 "Delivered"
。
关于python - 使用 Selenium Webdriver 检测是否发送了 WhatsApp 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65751989/