Selenium Xpath WebElement Текст не печатается - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь извлечь текст, используя следующий код.Я не получаю никаких сообщений об ошибках.И ничего не возвращается, когда я печатаю выходную переменную.

helpful_vote = browser.find_elements_by_xpath('//span[@data-hook="helpful-vote-statement"]')
vote_text = helpful_vote.text
print( vote_text )

Когда я просматриваю журнал (рисунок ниже), текст, который я пытаюсь получить, отображается под вложенным элементом, называемым "parent«.Есть ли другая функция xpath или метод Python, который я должен использовать для извлечения текста?

enter image description here

1 Ответ

0 голосов
/ 17 ноября 2018

Вы используете метод find_elements_by_xpath, который возвращает список элементов. Таким образом, у вас нет свойства text в list объекте. Вы можете выбрать первый (или любой другой нужный вам) элемент helpful_vote и получить доступ к его свойству text, или выполнить итерацию списка и получить text из каждого результата XPath.

Но если вы ожидаете получить один результат от этого XPath, просто используйте метод find_element_by_xpath, который возвращает единственный элемент. Итак, ваш код будет выглядеть так:

helpful_vote = browser.find_element_by_xpath('//span[@data-hook="helpful-vote-statement"]')
vote_text = helpful_vote.text
print(vote_text)

Вы можете найти больше информации на Селен документы для Python .

ОБНОВЛЕНИЕ: Я не совсем понимаю, чего вы хотите достичь. Если вы хотите повторить результат XPath и вывести text каждого элемента, то этот код работает для меня:

from selenium import webdriver
import time

browser = webdriver.Chrome(r'C:\chromedriver.exe')
link = 'https://www.amazon.com/Gerber-Organic-Foods-Veggie-Variety/product-reviews/B00D05BPTW/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews'
browser.get(link)
time.sleep(6)
helpful_vote = browser.find_elements_by_xpath('//span[@data-hook="helpful-vote-statement"]')

for attr1 in helpful_vote:
    Votes = attr1.text
    print(Votes)

browser.close()

Вывод:

7 человек нашли эту информацию полезной
3 человека считают это полезным
20 человек считают это полезным
3 человека нашли эту информацию полезной
Один человек нашел это полезным
5 человек считают это полезным
6 человек считают это полезным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...