Find_elements получает только первый элемент при использовании SeleniumPython

Программы на Python
Anonymous
Find_elements получает только первый элемент при использовании Selenium

Сообщение Anonymous »

У меня есть программа на Python, которая использует необнаруженный Chromedriver для сбора данных о продуктах из Walmart. Ниже представлена ​​упрощенная версия моего кода, но она получает только первый элемент. Я потратил часы, пытаясь понять это. Может ли кто-нибудь показать мне, в чем проблема?
import time
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import undetected_chromedriver as uc

url='https://www.walmart.com/search?q=lego&f ... %3AWalmart'

driver = uc.Chrome(enable_cdp_events=True)
driver.implicitly_wait(15)
driver.maximize_window()
driver.get(url)

sleep(5)
for _ in range(3):
try:
scroll_value = driver.execute_script("return document.body.clientHeight;")
driver.execute_script(f"return window.scrollBy(0, {str(scroll_value)})")
sleep(1)
except:
pass

items_list = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "/html/body/div[1]/div[1]/div/div[2]/div/main/div/div[2]/div/div/div[1]/div[2]/div/section/div"))).find_elements(By.CSS_SELECTOR, '[data-testid="list-view"]')

for raw_item in items_list:
product_name = WebDriverWait(raw_item, 5).until(EC.presence_of_element_located((By.XPATH, "//div[2]/span/span"))).text.strip()
print(product_name)

driver.quit()


Подробнее здесь: https://stackoverflow.com/questions/790 ... g-selenium

Вернуться в «Python»