我有一个WhatsApp机器人,可以发送图像和视频,但我无法确保附件被发送。我已经尝试了几种方法来解决这个问题,这是我的最后一个想法是打开下拉菜单上方的最后一条消息,并检查是否交付框中有'今天'一词。
try:
menu = driver.find_element(By.CSS_SELECTOR, '#main > div._3B19s > div > div._5kRIK > div.n5hs2j7m.oq31bsqd.gx1rr48f.qh5tioqs > div:nth-child(14) > div > div > div > div._1BOF7._2AOIt > span > div > div > span').click()
msg_info = driver.find_element(By.CSS_SELECTOR, '#app > div > span:nth-child(4) > div > ul > div > li:nth-child(1) > div')
status = driver.find_element(By.XPATH, '//*[@id="app"]/div/div/div[6]/span/div/span/div/div[2]/div/div/div[2]/div[2]/div[2]/div')
if 'today' in status.text():
return True
except NoSuchElementException:
return False
这段代码的问题是菜单目前不可点击,需要将鼠标悬停在菜单上才能点击。有没有办法解决这个问题,或者直接定义消息底部图标的状态?
1条答案
按热度按时间sczxawaw1#
有两种方法可以解决你的问题。
第一种方法是在Selenium中使用操作。你可以使用以下代码来实现这一点:
这段代码会将鼠标光标移动到元素的中心,然后您可以单击它。你可以在这里了解更多关于action_chain的信息
检查消息是否已发送的第二种更直接的方法是检查WhatsApp元素的HTML。下面是相关的HTML片段:
如您所见,有一个名为'aria-label'的属性。在获取元素后,您可以检查此属性以确定消息是否已发送。下面是一个示例,说明如何做到这一点: