首页 > 解决方案 > 使用 selenium 和 python 自动化 WhatsApp

问题描述

我使用 python 和 selenium 制作了这个简单的 whatsapp 机器人。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://web.whatsapp.com/')

target = "Someone"
msg = "Something"

input('Press Enter after scanning QR Code...')

TargetXML = driver.find_element_by_xpath('//span[@title = " 
{}"]'.format(target))
TargetXML.click()

MsgBox = driver.find_elements_by_class_name('_1Plpp')


MsgBox[0].send_keys(msg)
SendButton = driver.find_elements_by_class_name('_35EW6')
SendButton[0].click()

在第一次运行时,我有MsgBox.send_keys(msg)andSendButton.click()而不是你在脚本中看到的给出错误AttributeError: 'list' object has no attribute 'send_keys'AttributeError: 'list' object has no attribute 'click'.

我将它们更改为索引 0 解决了错误并且脚本工作得非常好,但我真的不明白为什么它与第 0 个索引中的元素一起工作,所以我尝试打印元素并得到输出,因为<selenium.webdriver.remote.webelement.WebElement (session="bd86fe53729956ba1fc3b16cf841a1a8", element="0.5125252686493715-2")>我仍然不相信它并牢记这个问题。任何帮助,将不胜感激!谢谢!

标签: python-3.xselenium-webdriver

解决方案


方法“find_elements_by_class_name”返回满足参数中类名的元素列表。此列表由 WebElement 组成,当您选择第 0 个元素时,您将获得 WebElement 的对象,您可以在该对象上应用 send_keys() 和 click() 方法。

有关 Selenium 和 WebElement 对象的更多信息,请参阅此文档


推荐阅读