使用find_elements_by_class_name提取数据

时间:2019-04-28 22:55:44

标签: python selenium selenium-webdriver

我试图通过使用find_elements_by_class_name提取页面上的每个 class_name ='position-header',但这样做的时候我收到错误消息:

AttributeError:“列表”对象没有属性“文本”

from parsel import Selector  
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys   

employment = driver.find_elements_by_class_name('position-header')

屏幕截图显示,当使用方法 find_element_by_class_name 时,它返回了数据,但是在使用 find_elements_by_class_name 时,我遇到了错误。

enter image description here

1 个答案:

答案 0 :(得分:2)

driver.find_elements_by_class_name()方法返回匹配元素的列表,并且您尝试访问列表中的text属性,该属性不存在... text仅可用在单个实例上。

您要么选择第一个,然后访问.text属性:

driver.find_elements_by_class_name('position-header')[0].text

或遍历列表并获取每个元素的ext:

elements = driver.find_elements_by_class_name('position-header')
for element in elements:
    print(element.text)