我通过从编辑器复制代码并将其粘贴到python中,在python中一次运行了一堆代码。 此代码包括嵌套的 for 循环。 我正在做一些网络抓取,程序在不同的时间退出。 我怀疑这是因为它没有时间加载。 我收到以下错误(再次 - 程序每次抓取不同数量的文本):
Traceback (most recent call last):
File "<stdin>", line 35, in <module>
IndexError: list index out of range
首先,line 35
指的是什么? 这是相关内部 for 循环中的位置吗?
其次,我认为错误可能是由一行使用硒的代码引起的,如下所示:
driver.find_elements_by_class_name("button")[j-1].click()
在这种情况下,如何处理此错误? 哪些具有显式等待或异常处理的示例代码可以解决此问题?
给定的值 j
[j-1]
不存在,可能是如果j-1
超过列表中的最大元素数
您可以尝试使用代码并捕获如下所示的 IndexError 异常:
try:
# your code here
except IndexError:
# handle the error here
当您尝试访问不存在的列表的索引时,会发生索引错误。例如:
>>> a = [1, 2, 3]
>>> print(a[10])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
如果没有更多细节,很难说您应该如何处理错误。
使用代码片段时,在文本编辑器中打开它们很方便
,并且- 仅将当前正在处理的部分复制粘贴到控制台中,以便所有相关变量都位于可以从控制台浏览的局部命名空间中,或者 将
- 中等到大的块复制粘贴为一个整体,同时启用自动事后调试器调用,例如,使用异常时自动启动调试器 活动状态配方或 IPython 的 %pdb 魔法,或
- 在调试器下运行整个脚本,例如使用
-m pdb
、IPython 的 %run 或使用 IDE。