轉自: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)
- //移動到元素element對象的“頂端”與當前窗口的“頂部”對齊
- ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", element);
- ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
- //移動到元素element對象的“底端”與當前窗口的“底部”對齊
- ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(false);", element);
- //移動到頁面最底部
- ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");
- //移動到指定的座標(相對當前的座標移動)
- ((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 700)");
- Thread.sleep(3000);
- //結合上面的scrollBy語句,相當於移動到700+800=1600像素位置
- ((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 800)");
- //移動到窗口絕對位置座標,如下移動到縱座標1600像素位置
- ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 1600)");
- Thread.sleep(3000);
- //結合上面的scrollTo語句,仍然移動到縱座標1200像素位置
- ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 1200)");