İstisna oluştu: TypeError 'WebElement' nesnesi belirtilemez
Merhaba çocuklar Gerçekten olduğum acemi piton ve ben sadece açılan kod parçası yazma Whatsapp
ve ona kişinin adını veriyorsunuz ve mesaj kaç kez istediğinizi gönderiyor.
Ama kodda hata ayıklamaya başladığımda bana şunu veriyor:
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()
beyler lütfen python'da iyi biri cevap versin !!! 🙏🙏
Yanıtlar
find_element_by_class_name ()
find_element_by_class_name() sınıf adına göre bir öğe bulur.
Kod satırında:
msg = driver.find_element_by_class_name('_3FRCZ')[1]
driver.find_element_by_class_name('_3FRCZ')
tek bir WebElement döndürür . Bu nedenle ona bir dizin ekleyemezsiniz veya başka bir deyişle onu alt yazılamaz hale getiremezsiniz.
Çözüm
İki çözüm var:
Dizini kaldırın, yani
[1]
kodunuz iyi olacaktır.Alternatif olarak bunun yerine
driver.find_element_by_class_name()
kullanmanız gerekiyorfind_elements_by_class_name()
. Çok etkili bir şekilde kod satırınız şöyle olacaktır:msg = driver.find_elements_by_class_name('_3FRCZ')[1]