我在python中一次运行一堆代码,方法是从我的编辑器中复制它并将其粘贴到python中。此代码包含嵌套的for循环。我正在做一些网络抓取,程序在不同的时间退出。我怀疑这是因为它没有时间加载。我收到以下错误(再一次 - 程序每次都会刮掉不同数量的文本):
Traceback (most recent call last):
File "<stdin>", line 35, in <module>
IndexError: list index out of range
首先,line 35
指的是什么?这是相关内部for循环中的位置吗?
其次,我认为错误可能是由使用selenium的一行代码引起的:
driver.find_elements_by_class_name("button")[j-1].click()
在这种情况下,如何处理此错误?有哪些示例代码可以使用显式等待或异常处理来解决问题?
答案 0 :(得分:2)
这意味着[j-1]
的给定值不存在j
,可能是j-1
超出列表中元素的最大数量
答案 1 :(得分:1)
您可以尝试使用代码并捕获IndexError异常,如下所示:
try:
# your code here
except IndexError:
# handle the error here
当您尝试访问不存在的列表的索引时,会发生IndexError。例如:
>>> a = [1, 2, 3]
>>> print(a[10])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
很难说如何在没有更多细节的情况下处理错误。
答案 2 :(得分:1)
使用代码段时,可以方便地在文本编辑器中打开它们
-m pdb
,IPython's %run或使用an IDE。