Python selenium 滾動條


在我們使用Python + selenium 的時候,會遇到如下報錯,原因是當頁面上的元素超過一屏后,想操作屏幕下方的元素,是不能直接定位到,會報元素不可見的。selenium.common.exceptions.WebDriverException: Message: unknown error: Element , )

這時候需要借助滾動條來拖動屏幕,使被操作的元素顯示在當前的屏幕上。滾動條是無法直接用定位工具來定位的。selenium里面也沒有直接的方法去控制滾動條,

借助Js:   execute_script(),可以直接執行js的腳本。

一 、控制滾動條高度

#滾動條回到頂部:  

js="var q=document.getElementById(‘id‘).scrollTop=0"

driver.execute_script(js

 

#滾動條拉到底部

js="var q=document.documentElement.scrollTop=10000"

driver.execute_script(js)

 

#這里可以修改scrollTop 的值,來定位右側滾動條的位置,0是最上面,10000是最底部。

js="var q=document.documentElement.scrollTop=5000"

driver.execute_script(js)

二、控制橫向滾動

通過左邊控制橫向和縱向滾動條scrollTo(x, y

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

driver.execute_script(js)

第一個參數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+=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)");


免責聲明!

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



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