2015-01-08 2 views
0

Я использую пакет selenium для python, и я пытаюсь прокрутить страницу до конца. Хотя, сайт, на который я применяю селен, динамичен (динамическая загрузка), что означает, что на самом деле это не так прокручивается в нижней части страницы.прокрутить вниз с селеном

после того, как я прочитал, и я найти в документации селена я был в состоянии получить такое решение:

for i in range(25): 
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight)") 
    time.sleep(0.5) 

это не достаточно хорошо для меня, потому что иногда страницы требует гораздо больше итераций, а иногда и много меньше для получения нижней части страницы.

есть функция прибудет, так что я могу использовать, если заявление, что-то вроде:

for i in range(25): 
    if driver.current_position == driver.document_height: 
     break 
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight)") 
    time.sleep(0.5) 

так, когда я получаю до конца документа я не буду ждать, пока ничего и разорвать петлю.

или, может быть, если я могу проверить, сколько пикселей я подпрыгнул и, если это ноль я буду разорвать петлю

ответ

0

Было бы лучше использовать while петли, и выйти из цикла, когда вы попали в нижней части страницы, а не иметь заданное количество итераций в for. Существует хорошее обсуждение одного из способов сделать это, здесь: Scrolling down a page with Selenium Webdriver

Смежные вопросы