2015-09-24 4 views
3

Я использую Selenium с Python, чтобы извлечь список врачей с сайта this. Я выбираю опцию Специальность и извлекает результаты. Результаты отображаются после прокрутки страниц, как в твиттере. Я не могу прокрутить страницу, чтобы просмотреть результаты. Я попробовал несколько подходов, как send_keys, как:Прокрутка до дна с использованием Selenium Python

for i in range(0,15): 
       self.driver.find_element_by_id("doctor-matrix-section").send_keys(Keys.PAGE_DOWN) 
       time.sleep(1) 
       print 'hello' 
       print i 
       i+= 1 

Петля используется как я понятия не имею, как долго мне нужно нажать PAGE DOWN кнопку. я также попробовал другой подход, как:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 

Ни один подход я следовал обработанное. Любая помощь будет действительно полезна.

+0

Вы попробовали - 'driver.execute_script (" window.scrollBy (0, document.body.scrollHeight); ")'? scrollTo используется, когда у вас есть определенные координаты на вашей веб-странице. scrollBy прокручивает число пикселей, которое вы указываете как 'document.body.scrollHeight'. –

+0

Я пробовал, но не работал вообще, сайт разработан с использованием angularjs, это так влияет? –

ответ

0

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

bg = driver.find_element_by_css_selector('body') 

bg.send_keys(Keys.SPACE) 

Вы можете попробовать использовать это в for i in range(x) цикле для достижения желаемой длины прокрутки.

+0

Нажатие пробела только один раз не приведет вас к нижней части страницы, если страница длинная. и вы не знаете значения x, когда вы говорите, помещаете это в цикл. – Ayush

1

Я думаю, что это ответ, который вы ищете:

from selenium.webdriver.common.keys import Keys 

elem = self.driver.find_element_by_id("doctor-matrix-section") 
elem.send_keys(Keys.END) 

Это приведет к концу страницы в одном только пойти.

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