selenium---JS處理滾動條


  在web自動化中,會遇到想要定位的內容,由於電腦分辨率的問題導致,需要定位的元素可能沒有在頁面上展示出來,這個時候我們應該怎么做呢?正常情況下,肯定是點擊滾動條,找到想要的元素,然后進行操作。問題來了,selenium有沒有辦法操作滾動呢?selenium目前沒有好的辦法進行操作滑動條,但是前面介紹的JS有這個功能哈

滾動條

滾動條:滾動條是在我們使用軟件無法顯示整個界面的時候,右側的一個可以滾動的用於顯示剩下界面的條

知道了滾動條是什么,那么我們如何通過JS進行操作呢?

JS操作滾動條

JS操作滾動條有幾種

1、滾動條到頂部

# JS滾動條到頂部
js="var q=document.getElementById('id').scrollTop=0"

2、滾動條在底部,scrollTop表示滑動條的位置

# 滾動條到底部,
js="var q=document.documentElement.scrollTop=10000"

3、操作橫向滾動條

# 操作橫向滾動條
js  = “window.scrollTo(100,400)“

4、通過元素進行滾動

通過觀察會發現上面的滾動條都是滾動到固定位置,那么我們的元素在中間,我們又不清楚滾動條具體停放在哪里?我們可以通過JS進行找到這個元素然后將滾動條操作到可見元素的位置

# 滾動到元素可見位置
js = "arguments[0].scrollIntoView()"
# 元素位置
element = driver.find_element_by_id('xxxx')
# 滾動可見位置
driver.execute_script(js,element)

小試牛刀

這里安靜就拿博客園來舉例子,通過元素進行滾動到可視區域

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
# 找到想要滾動到的元素
element = driver.find_element_by_xpath('//*[contains(text(),"下一頁")]')
# js操作腳本
js = "arguments[0].scrollIntoView()"
driver.execute_script(js,element)
time.sleep(2)
element.click()

 

其實通過JS操作web頁面的內容還有很多,JS可以幫助我們解決一些selenium無法解決的問題,后續一點點的為大家補充JS工作中遇到的內容,大家也可以留言說說你在工作中通過JS都做哪些?

 


免責聲明!

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



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