почему селен возвращает данные только иногда при одинаковых условиях - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь напечатать цены внутри карусели наверху gog.com.

Мой скрипт работает по некоторым ценам, но не по многим. я не понимаю, они в основном все одинаковые. я копирую и вставляю xpath, и все они в основном одинаковы, за исключением их первого тега.

22.99 is at 
/html/body/div[2]/div/div[3]/div/div[3]/div[2]/div/a[8]/div[2]/div/div/div[3]/div/span[2]/span

5.69 is at 
/html/body/div[2]/div/div[3]/div/div[3]/div[2]/div/a[7]/div[2]/div/div/div[3]/div/span[2]/span

вывод, который я получаю, показан ниже, (число напечатано между объектами. Обратите внимание на пустые места, где нет чисел)

<selenium.webdriver.remote.webelement.WebElement (session="097dd18658222032f950b705069bfafb", element="3aed9a9c-b010-41e0-a35d-0a2a0d2e98da")>
22.59
<selenium.webdriver.remote.webelement.WebElement (session="097dd18658222032f950b705069bfafb", element="f9dc7bcf-9e1b-482e-9bf7-fd433326f2f3")>

<selenium.webdriver.remote.webelement.WebElement (session="097dd18658222032f950b705069bfafb", element="bd7114ab-8012-4f57-b84d-49e172363cd9")>

мой скрипт ниже

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")))

A = "/html/body/div[2]/div/div[3]/div/div[3]/div[2]/div/a[4]/div[2]/div/div/div[3]/div/span[2]/span" # this works       it print 22.59
print(driver.find_element_by_xpath(A));
print(driver.find_element_by_xpath(A).text);
A = "/html/body/div[2]/div/div[3]/div/div[3]/div[2]/div/a[7]/div[2]/div/div/div[3]/div/span[2]/span" # this doesnt work, it should print 5.69
print(driver.find_element_by_xpath(A));
print(driver.find_element_by_xpath(A).text);
A = "/html/body/div[2]/div/div[3]/div/div[3]/div[2]/div/a[8]/div[2]/div/div/div[3]/div/span[2]/span" # this doesnt work, it should print 22.99
print(driver.find_element_by_xpath(A));
print(driver.find_element_by_xpath(A).text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...