python - 如何修复“发生错误:‘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”对象不可下标
解决方案
obj_lists
表示所有a
标签的列表,作为FirefoxWebElement
对象。因此,当您尝试在此列表上循环时,您不必为每个项目添加索引:songs
它已经是FirefoxWebElement
您要查找的所有属性的实例,例如text
,您可以直接访问它。
您甚至可以摆脱该enumerate
功能:
for songs in obj_lists:
try:
print(songs.text)
except Exception as error:
print(error)
推荐阅读
- exception - 控制或曾经与最后一团糟?
- android - 找不到满足版本约束的“androidx.annotation:annotation”版本:运行 androidTests 时出错
- machine-learning - Difference in PCA with Scikit-Learn and SVD
- swift - 我可以使用 Extension 在 swift 4.2 中结束方法名称吗?
- python-3.x - 运行时问题(非零退出条件)Python
- android - 将admob gradle添加到android应用程序时出现依赖冲突错误
- angular - 如何以角度从 httpInterceptor 错误处理程序服务获取组件名称?
- vb.net - 如何格式化从目录中检索并在 vb.net 的 datagridview 中显示的文本文件值
- google-apps-script - 批处理功能时谷歌脚本代码运行缓慢
- spring - Redis 缓存内存状态