我使用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 }}我仍然对此不服气,并且想到了这个问题。任何帮助,将不胜感激!谢谢!
答案 0 :(得分:0)
方法'find_elements_by_class_name'返回满足参数中类名称的元素列表。当选择第0个元素时,此列表由WebElement组成,您将获得WebElement对象,可以在该对象上应用send_keys()和click()方法。
有关Selenium和WebElement对象的更多信息,请参见this documentation。