Python+selenium 網頁滾動條操作詳解


selenium沒有控制頁面滾動的方法,這時候只能借助Js了,selenium提供了一個操作js的方法:

execute_script(),可以直接執行js的腳本。

self.driver.execute_script("var q=document.documentElement.scrollTop=100000")#Y滾動

  

scrollTop是右側高度滾動,Y軸滾動
1.滾動條回到頂部: 
 js="var q=document.getElementById(‘id‘).scrollTop=0"
  driver.execute_script(js) 
2.滾動條拉到底部

  js="var q=document.documentElement.scrollTop=10000"
  driver.execute_script(js)

3.這里可以修改scrollTop 的值,來定位右側滾動條的位置,0是最上面,10000是最底部。
  js="var q=document.documentElement.scrollTop=5000"
  driver.execute_script(js)

  X軸滾動

  1.有時候瀏覽器頁面需要左右滾動(一般屏幕最大化后,左右滾動的情況已經很少見了)。
  2.通過左邊控制橫向和縱向滾動條scrollTo(x, y)

    js = "window.scrollTo(100,400);"
    driver.execute_script(js)

  3.第一個參數x是橫向距離,第二個參數y是縱向距離

  其他一些滾動

# 移動到元素element對象的“頂端”與當前窗口的“頂部”對齊  
driver.execute_script("arguments[0].scrollIntoView();", element);  
driver.execute_script("arguments[0].scrollIntoView(true);", element);  

# 移動到元素element對象的“底端”與當前窗口的“底部”對齊  
driver.execute_script("arguments[0].scrollIntoView(false);", element);  

# 移動到頁面最底部  
driver.execute_script("window.scrollTo(0, document.body.scrollHeight)");  

# 移動到指定的坐標(相對當前的坐標移動)
driver.execute_script("window.scrollBy(0, 700)");   
# 結合上面的scrollBy語句,相當於移動到700+800=1600像素位置  
driver.execute_script("window.scrollBy(0, 800)");  

# 移動到窗口絕對位置坐標,如下移動到縱坐標1600像素位置  
driver.execute_script("window.scrollTo(0, 1600)");  
# 結合上面的scrollTo語句,仍然移動到縱坐標1200像素位置  
driver.execute_script("window.scrollTo(0, 1200)");

 

滾動至指定元素高度

balan_title_loc = '//span[@class="header-period"]'
                    target = self.driver.find_element_by_xpath(balan_title_loc)
                    self.driver.execute_script("arguments[0].scrollIntoView();", target)

 

在內嵌div內滾動

div內的ID定位及滾動

js = 'document.getElementById("zhizi_mask").scrollTop=10000'
driver.execute_script(js)

  

div內的classname定位及滾動,注意getElements返回的是個列表所以[0]

js = 'document.getElementsByClassName("scroll")[0].scrollTop=10000'
driver.execute_script(js)

  

獲取滾動條當前高度

return document.getElementsByClassName("a-l-page-container")[0].scrollTop

get_scroll_height_js = "return document.documentElement.scrollTop"

  

獲取當前滾動條全部高度

more_h = 'var q=document.body.offsetHeight;return(q)'

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM