出现异常:TypeError;WebElement&39;对象不可订阅 [英] Exception has occurred: TypeError 'WebElement' object is not subscriptable

查看:23
本文介绍了出现异常:TypeError;WebElement&39;对象不可订阅的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我真的是一名python新手,我只是写了一段代码来打开Whatsapp

然后你给它提供人名,然后消息发送你想要的次数。

但当我开始调试代码时,它会显示以下内容:

Exception has occurred: TypeError 'WebElement' object is not subscriptable File "E:IliyaMy CoursesPythonProjectsWhatsapp RobotWhatsapp_Bot.py", line 15, in <module> msg = driver.find_element_by_class_name('_3FRCZ')[1]

# ======================================
from selenium import webdriver
PATH = 'C:\Program Files (x86)\chromedriver.exe'
driver = webdriver.Chrome(PATH)
driver.get('https://web.whatsapp.com/')

input("Please Press The 'Enter' Button... ")
name = input("Enter Person's Name: ")
msg = input("Enter The Message: ")
counter = int(input("How Many Times Do You Want To Repeat The Message?:  "))

user = driver.find_element_by_xpath('//span[@title = "{}"]'.format(name))
user.click()
msg = driver.find_element_by_class_name('_3FRCZ')[1]
for i in range(counter):
    msg.send_keys(msg)
    button = driver.find_element_by_class_name('_1U1xa')[0]
    button.click()

伙计们,请找一个擅长蟒蛇的人回答我!🙏🙏

推荐答案

Find_Element_by_Class_Name()

find_element_by_class_name()按类名查找元素。

在代码行中:

msg = driver.find_element_by_class_name('_3FRCZ')[1]

driver.find_element_by_class_name('_3FRCZ')将返回单个WebElement。因此,您将无法将索引附加到它,或者换句话说,使其可订阅。


解决方案

有两种解决方案:

  • 删除索引[1]您的代码将全部正常。

  • 作为替代,您需要使用find_elements_by_class_name()而不是driver.find_element_by_class_name()。因此,实际上您的代码行将是:

    msg = driver.find_elements_by_class_name('_3FRCZ')[1]
    

这篇关于出现异常:TypeError;WebElement&39;对象不可订阅的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆