使用selenium python滚动窗口

时间:2017-02-19 20:50:29

标签: python selenium selenium-webdriver automation

我正在使用selenium python编写一个用于linkedin的脚本并面临一个问题。我想滚动对话框窗口,但我的脚本开始滚动窗口位于后面。

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

1 个答案:

答案 0 :(得分: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])没有任何结果,因为没有新的浏览器窗口打开,只是在同一浏览器窗口中的模态窗口