Selenium: у объекта 'list' нет атрибута 'text' - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь получить текст в элементе id='resultStats' со страницы результатов поиска Google для следующего запроса https://www.google.com/search?q=site:https://theshipibomarket.com/

Я получаю вывод с кодом, который у меня есть, но это не тактекст внутри элемента. Вывод: [<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="5a1e4063-dcb8-48b2-93f6-1c60bb7e9e05", element="63dabd48-bd5f-4380-9598-173b91e72367")>]

Когда я использую функцию .text для элемента results, я получаю следующую ошибку:

AttributeError: 'list' object has no attribute 'text'

Вот мойкод:

# import libraries
import urllib.request
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
import time
options = Options()
options.headless = True

query = "site:https://theshipibomarket.com/"
urlpage = "https://www.google.com/search?q="+query
print(urlpage)
# run firefox webdriver from executable path of your choice
driver = webdriver.Firefox(options=options)
# get web page
driver.get(urlpage)
# execute script to scroll down the page
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;")
# sleep for 30s
time.sleep(30)
# driver.quit()

# find elements by xpath
results = driver.find_elements_by_xpath("//*[@id='resultStats']")
#print('Number of results', len(results))
print("The number of pages Google have index {}".format(results.text))

Я подозреваю, что, поскольку это javascript, это вызывает проблему, так как вывод list. У меня нет большого опыта в очистке Google или в целом большом количестве операций по очистке, поэтому извиняюсь, если это простое недоразумение от моего имени.

1 Ответ

1 голос
/ 05 ноября 2019

Изменить последнюю строку на:

print("The number of pages Google have index {}".format(results[0].text)) # added zero
...