这是我的代码:
def textfinder():
try:
textfinder1 = driver.find_elements_by_class_name("m-b-none").text
except NoSuchElementException:
pass
print("no such element")
print(textfinder1)
它仅在我使用 find_element 时有效。当我使用 find_elements 时,出现错误“list”对象没有属性“text”。我知道它会返回一个列表,但我只是不知道如何“阅读”它。当我从命令中删除 .text 时,我没有得到任何错误,但是一些奇怪的数据,但我需要类的文本内容。
最佳答案
其实,当你这样做的时候
text = driver.find_element_by_class_name("m-b-none").text
您将获得第一个匹配的元素,由于 Selenium,该元素拥有一个名称为 text
的属性。 相反,当你这样做的时候
matched_elements = driver.find_elements_by_class_name("m-b-none")
^
它将匹配所有对应的元素。假设 matched_elements
是一个列表,并且这个列表是 Python 原生的,(例如,它不是一个具有 text
作为属性的 Selenium 修改对象),你将不得不对其进行迭代,并迭代地获取每个元素的文本。如下
texts = []
for matched_element in matched_elements:
text = matched_element.text
texts.append(text)
print(text)
或者如果您想尽可能保持代码不变,您可以在一行中完成:
texts = [el.text for el in driver.find_elements_by_class_name("m-b-none")]
https://stackoverflow.com/questions/43926155/