首页 > 解决方案 > 如何修复“发生错误:‘FirefoxWebElement’对象不可下标’

问题描述

我试图提取网页元素,它经常给出这个错误:

from selenium import webdriver
driver=webdriver.Firefox()
singer_name='Avenged sevenfold'.replace(' ','+')
url=r'https://www.youtube.com/results?search_query='+singer_name
driver.get(url)
obj_lists=driver.find_elements_by_tag_name('a')
driver.minimize_window()

for index,songs in enumerate(obj_lists):
    try:
        print(songs[index].text)
    except Exception as error:
        print(error)


driver.close()

烦人的输出

发生错误“FirefoxWebElement”对象不可下标

标签: pythonpython-3.x

解决方案


obj_lists表示所有a标签的列表,作为FirefoxWebElement对象。因此,当您尝试在此列表上循环时,您不必为每个项目添加索引:songs它已经是FirefoxWebElement您要查找的所有属性的实例,例如text,您可以直接访问它。

您甚至可以摆脱该enumerate功能:

for songs in obj_lists:
    try:
        print(songs.text)
    except Exception as error:
        print(error)

推荐阅读