IndexError:列表分配索引超出范围[python +硒]

时间:2019-07-04 23:28:09

标签: python selenium

lin_count = len(driver.find_elements_by_xpath("/html/body/div/table/tbody/tr"))

nomes = [lin_count]
for x in range(1, lin_count):
    nomes[x] = (driver.find_element_by_xpath("/html/body/div/table/tbody/tr["+str(x)+"]/td[2]").text)

driver.close()

OUT:IndexError:列表分配索引超出范围

2 个答案:

答案 0 :(得分:0)

nomes = [lin_count]行不会列出5个元素,请这样做:

nomes = [""] * lin_count

答案 1 :(得分:0)

您的代码中有很多问题

  1. 代码

    nomes = [lin_count]

不会使用lin_count个空元素创建一个列表。它使用一个元素创建列表:lin_count

  1. range(1, lin_count) 创建值从1到lin_count-1的列表,因此您将错过列表中的最后一个元素

  2. driver.find_elements_by_xpath已返回列表,请使用它!

我认为您的代码应该更像这样:

nomes = []
x = 0
xpath = "/html/body/div/table/tbody/tr"
for step in driver.find_elements_by_xpath(xpath):
    x += 1
    nomes.append(driver.find_element_by_xpath(xpath+"["+str(x)+"]/td[2]").text)