【问题标题】:Selenium / Python TypeError: 'WebElement' object is not iterableSelenium / Python TypeError:“WebElement”对象不可迭代
【发布时间】:2019-03-09 18:14:54
【问题描述】:

我正在尝试从以下 HTML 打印和/或写入 span 标签内的文件文本。只希望find_element 一次,而不是find_elements,因为只有一个实例:

<div>
  <span class="test">2</span>
</div>

下面是我正在使用的 python 代码,它生成“'WebElement' object is not iterable”错误。

test = driver.find_element_by_xpath("/html/body/div")

for numberText in test:
numberTexts = numberText.find_element_by_class_name("test")

print(numberTexts.txt)

【问题讨论】:

    标签: python selenium xpath


    【解决方案1】:

    您通过以下方式获得单个元素(第一个):

    driver.find_element_by_xpath("/html/body/div")
    

    这显然是不可迭代的。

    对于多个元素,即获得一个可迭代的,使用:

    driver.find_elements_by_xpath("/html/body/div")
    

    注意element之后的s

    还可以查看documentation

    【讨论】:

    • 谢谢!在第一行代码中添加“元素”就可以了!
    【解决方案2】:

    单个元素将不可迭代。试试 find_elements_by_xpath(复数元素)。

    如果只有一个实例,那么只需使用它而不使用 for 循环。

    【讨论】:

      【解决方案3】:

      错误很明显... find_element_by_xpath 的返回值为 WebElement。你不能迭代 WebElement...

      您的示例代码中还有其他几个错误。您可以将整个代码块重写为:

      element = driver.find_element_by_class_name("test")
      print(element.text)
      

      【讨论】:

        猜你喜欢
        • 2021-12-07
        • 2022-12-12
        • 2021-10-25
        • 1970-01-01
        • 2023-03-06
        • 2020-11-09
        • 1970-01-01
        • 2021-12-13
        • 2015-04-06
        相关资源
        最近更新 更多