selenium+webdriver+python #模擬下滑到底部操作

轉自:http://blog.csdn.net/sinat_21302587/article/details/54341020

和http://blog.csdn.net/jlminghui/article/details/50477283

python爬蟲在獲取動態網頁中經常會用到selenium,如何模擬滾動得到最底部呢?下邊的方法還可以 


在獲取元素的時候,明明元素確切的存在但是無法定位到,原因比較常見的有兩個 
1.等待時間不夠,time.sleep()下看看 
2.元素在頁面下方,需要將滾動條拉到底部才能找到該元素

通常只需要加入

#將滾動條移動到頁面的底部
js="var q=document.documentElement.scrollTop=100000"  
driver.execute_script(js)  
time.sleep(3)  
#將滾動條移動到頁面的頂部  
js="var q=document.documentElement.scrollTop=0"  
driver.execute_script(js)  
time.sleep(3)  
#若要對頁面中的內嵌窗口中的滾動條進行操作,要先定位到該內嵌窗口,在進行滾動條操作 
js="var q=document.getElementById('id').scrollTop=100000" 
driver.execute_script(js) 
time.sleep(3) 

[java] view plain copy
  1. //移動到元素element對象的“頂端”與當前窗口的“頂部”對齊  
  2. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", element);  
  3. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);  
  4.   
  5. //移動到元素element對象的“底端”與當前窗口的“底部”對齊  
  6. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(false);", element);  
  7.   
  8. //移動到頁面最底部  
  9. ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");  
  10.   
  11. //移動到指定的座標(相對當前的座標移動)  
  12. ((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 700)");  
  13. Thread.sleep(3000);  
  14. //結合上面的scrollBy語句,相當於移動到700+800=1600像素位置  
  15. ((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 800)");  
  16.   
  17. //移動到窗口絕對位置座標,如下移動到縱座標1600像素位置  
  18. ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 1600)");  
  19. Thread.sleep(3000);  
  20. //結合上面的scrollTo語句,仍然移動到縱座標1200像素位置  
  21. ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 1200)");  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章