例外が発生しました:TypeError'WebElement 'オブジェクトは添え字化できません
こんにちはみんな私は本当にPythonの初心者で、Whatsappを開くコードを書いています
そして、あなたはそれに人の名前を与え、そしてメッセージはあなたが望む回数を送信します。
しかし、コードのデバッグを開始すると、次のようになります。
Exception has occurred: TypeError 'WebElement' object is not subscriptable File "E:\Iliya\My Courses\Python\Projects\Whatsapp Robot\Whatsapp_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()
みんなPythonが得意な人に答えてください!!!🙏🙏
回答
1 DebanjanB
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を返します。したがって、インデックスを添付したり、サブスクリプト化したりすることはできません。
解決
2つの解決策があります:
インデックスを削除します。つまり
[1]
、コードはすべて正常になります。別の方法として、代わりに
driver.find_element_by_class_name()
を使用する必要がありますfind_elements_by_class_name()
。したがって、事実上、コード行は次のようになります。msg = driver.find_elements_by_class_name('_3FRCZ')[1]