2017-02-19 181 views
2

我正在为使用硒蟒蛇并面临问题的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

回答

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 

附:您可能需要这样做几次,因为人员列表最初并不完整:您需要向下滚动以触发XHR以添加(加载)更多人员...

P.P.S.请注意,driver.switch_to.window(driver.window_handles[-1])什么也没有,因为没有新的浏览器窗口打开,但只是在同一个浏览器窗口中的模式窗口

+0

感谢您的帮助 – Naeem