Вы используете метод 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 человек считают это полезным