2017-02-19 16 views
2

Я пишу скрипт для связанного с использованием selenium python и столкнулся с проблемой. Я хочу прокрутить окно диалога, но мой скрипт начнет прокручивать окно, которое находится сзади.прокручивание окна с использованием selenium python

driver=webdriver.Chrome() 
driver.get('https://www.linkedin.com/uas/login?goback=&trk=hb_signin') 
driver.find_element_by_name('session_key').send_keys(email) 
time.sleep(2) 
driver.find_element_by_id('session_password-login').send_keys(password,Keys.RETURN) 
time.sleep(7) 
driver.get('https://www.linkedin.com/in/rickblack/skills/(ACoAAAC4aQcBoD2OHCmDN1Fe7n2dMtoVYkWTz4o,27)/') 
driver.switch_to.window(driver.window_handles[-1]) 
for o in range(0,5): 
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 
    time.sleep(1) 

Image

ответ

3

Вы можете попробовать использовать ниже код для определения последнего человека в списке и прокрутите вниз к нему:

the_last_in_list = driver.find_elements_by_xpath('//div[@class="pv-endorsement-entity__detail pl3')[-1] 
the_last_in_list.location_once_scrolled_into_view 

P.S. Возможно, вам придется сделать это пару раз, поскольку список лиц изначально не завершен: вам нужно прокрутить вниз до триггера XHR, чтобы добавить (загрузить) больше людей ...

P.P.S. Обратите внимание, что driver.switch_to.window(driver.window_handles[-1]) ничего не делает, поскольку нет новых окон браузера, но только модальное окно в том же окне браузера

+0

Спасибо за вашу помощь – Naeem