【问题标题】:IndexError: list assignment index out of range [python + selenium]IndexError:列表分配索引超出范围[python + selenium]
【发布时间】:2019-07-05 07:48:05
【问题描述】:
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: list assignment index out of range

【问题讨论】:

    标签: python selenium


    【解决方案1】:

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

    nomes = [""] * lin_count
    

    【讨论】:

      【解决方案2】:

      你的代码有很多问题

      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)
      

      【讨论】:

        猜你喜欢
        • 2018-10-21
        • 2020-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-19
        • 2022-11-27
        • 2020-09-17
        • 1970-01-01
        相关资源
        最近更新 更多