使用Selenium和python自动化WhatsApp

时间:2019-04-16 19:00:08

标签: python-3.x selenium-webdriver

我使用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)SendButton.click(),而不是您在脚本中看到的错误AttributeError: 'list' object has no attribute 'send_keys'AttributeError: 'list' object has no attribute 'click'

我将它们更改为索引0,这解决了该错误,脚本运行得很好,但我无法真正理解为什么它与0th索引中的元素一起工作,因此我尝试打印该元素并将输出显示为{{1 }}我仍然对此不服气,并且想到了这个问题。任何帮助,将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

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

有关Selenium和WebElement对象的更多信息,请参见this documentation