Извлечь данные, используя find_elements_by_class_name - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь извлечь каждый class_name = 'position-header' на странице с помощью find_elements_by_class_name, но когда я это делаю, я получаю сообщение об ошибке:

AttributeError: у объекта 'list' нет атрибута 'text'

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 Ответ

2 голосов
/ 29 апреля 2019

Метод 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...