2014-03-04 49 views
2

我在嘗試搜索正確滾動網頁的另一種方法。我需要滾動網頁的原因是因爲有75%的數據是延遲加載的。這意味着它不會出現,直到我滾動它。我目前使用的方法如下緩慢高效滾動使用硒的Web驅動程序

browser.execute_script("window.scrollTo(0, document.body.scrollHeight/1.8);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/1.9);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.0);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.1);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.2);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.3);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.5);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.6);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.7);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.8);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.9);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.0);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.1);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.2);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.3);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.4);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.5);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.7);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.8);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.2);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.3);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.5);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.7);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.9);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.2);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.1);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.8);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.7);") 
    time.sleep(0.2) 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight/50);") 
    time.sleep(0.2) 

任何關於滾動的建議。提前致謝。硒被髮送空格鍵滾動

回答

4

一個不錯的方法壓到身體:

background = browser.find_element_by_css_selector("body") 
for i in range(5): 
    background.send_keys(Keys.SPACE) 
    time.sleep(1) 

你可以使用使用Shift +空格鍵類似的代碼,如果需要的話向上滾動。

另外,循環使用range這樣的特定次數可能是一個壞主意......如果可能的話,最好循環直到某個特定元素可見。這僅僅是爲了舉例。

+0

嗨Tetrinity,非常感謝! – CodeGuru