итерация по объектам карусели в селене с python - PullRequest
2 голосов
/ 31 марта 2020

с использованием селена. Я хочу перебрать игры в карусели в верхней части gog.com. Я хочу напечатать все цены, а ниже приведены 2 случайных xpath-а для информации, которую я хочу получить в карусели

/html/body/div[2]/div/div[3]/div/div[3]/div[2]/div/a[4]/div[2]/div/div/div[3]/div/span/span

/html/body/div[2]/div/div[3]/div/div[3]/div[2]/div/a[10]/div[2]/div/div/div[3]/div/span/span

это заставляет меня хотеть перебрать первый элемент. каждый существо - другая игра. но он либо не может найти этот путь, либо не возвращает данных, либо возвращает объект без атрибута .text или .inner html, так что я не могу получить информацию, которую хочу

ниже мой сценарий

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"../Downloads/chromedriver.exe")
driver.get('https://www.gog.com/')
driver.maximize_window()
WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,"/html/body/div[2]/div/div[3]/div/div[3]/div[2]/div/a[10]/div[2]/div/div/div[3]/div/span/span")))

for i in range(15):
    i+=1;
    A = "/html/body/div[2]/div/div[3]/div/div[3]/div[2]/div/a["+str(i)+"]/div[2]/div/div/div[3]/div/span[2]/span"
    try:
        print(driver.find_elements_by_xpath(A));
        print(driver.find_elements_by_xpath(A).text);
        print(str(driver.find_elements_by_xpath(A)));
    finally:
        pass

ниже - пример объекта, который он возвращает

[<selenium.webdriver.remote.webelement.WebElement (session="3ec9e534c096a49d3110dea89fea3864", element="0bf0c6b6-fb35-4e26-8bf4-acbb7431eafb")>]

ниже - пример ошибки, которую он возвращает

Traceback (most recent call last):
  File "C:\Users\User\Desktop\mi faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaak.py", line 16, in <module>
    print(driver.find_elements_by_xpath(A).text);
AttributeError: 'list' object has no attribute 'text'

ниже - пример фактического элемента i хочу получить информацию от

<span class="big-spot__price-amount" ng-bind="tile.data.price.finalAmount">13.69</span>

как мне заставить ее распечатать все цены в карусели вверху этой страницы https://www.gog.com/

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