Проблема с парсингом на селениуме, прокрутка

есть проблема, я объясню сценарий кода.

Сначала заходим на главную страницу, потом цикл for, который идет на 1 страницу, пролистывает и парсит ссылки на фото (без прокрутки не парсит), потом переходит на 2 страницу, а там уже проблема. Он прокручивается вниз за секунду. А мне нужно чтобы он прокручивался постепенно, как на первой странице. Кидаю код:

driver.get(url=url)

n = 0

urla = driver.find_element(By.CLASS_NAME, "ipsPagination_pageJump").text


for page_number in range(int(urla.split()[3])):
    page_number = page_number + 1
    driver.get(url=url + f"page/{page_number}")
    time.sleep(2)
    imgs = driver.find_elements(By.CLASS_NAME, "cGalleryPatchwork_image")
    for i in imgs:
        n = n + 500
        driver.execute_script(f"window.scrollTo(0, {n})")
        time.sleep(0.2)
        print(i.get_attribute("src"))

driver.quit()

Я знаю, что код очень плохой и не оптимизированный

Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
0
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

прокручивать постепенно один элемент за другим вы должны использовать следующую execute_script команду driver.execute_script("arguments[0].scrollIntoView(true);", i)

Код:

for page_number in range(int(urla.split()[3])):
    page_number = page_number + 1
    driver.get(url=url + f"page/{page_number}")
    time.sleep(2)
    imgs = driver.find_elements(By.CLASS_NAME, "cGalleryPatchwork_image")
    for i in imgs:
        #n = n + 500
        #driver.execute_script(f"window.scrollTo(0, {n})")
        driver.execute_script("arguments[0].scrollIntoView(true);", i)
        time.sleep(0.2)
        print(i.get_attribute("src"))

Другие вопросы по теме