Selenium / Python TypeError:“ WebElement”对象不可迭代

时间:2019-03-09 18:14:54

标签: python selenium xpath

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

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

下面是我正在使用的python代码,它生成“'WebElement'对象不可迭代”错误。

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

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

print(numberTexts.txt)

3 个答案:

答案 0 :(得分:2)

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

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

这显然是不可迭代的。

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

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

请注意s之后的element

还要签出documentation

答案 1 :(得分:0)

单个元素将不可迭代。尝试使用find_elements_by_xpath(多个元素)。

如果只有一个实例,则只需使用它而无需for循环。

答案 2 :(得分:-1)

错误非常明显... find_element_by_xpath的返回值为WebElement。您无法迭代WebElement ...

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

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