selenium---JS處理滾動條

  在web自動化中,會遇到想要定位的內容,因爲電腦分辨率的問題致使,須要定位的元素可能沒有在頁面上展現出來,這個時候咱們應該怎麼作呢?正常狀況下,確定是點擊滾動條,找到想要的元素,而後進行操做。問題來了,selenium有沒有辦法操做滾動呢?selenium目前沒有好的辦法進行操做滑動條,可是前面介紹的JS有這個功能哈web

滾動條

滾動條:滾動條是在咱們使用軟件沒法顯示整個界面的時候,右側的一個能夠滾動的用於顯示剩下界面的條spa

知道了滾動條是什麼,那麼咱們如何經過JS進行操做呢?code

JS操做滾動條

JS操做滾動條有幾種blog

一、滾動條到頂部

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

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

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

三、操做橫向滾動條

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

四、經過元素進行滾動

經過觀察會發現上面的滾動條都是滾動到固定位置,那麼咱們的元素在中間,咱們又不清楚滾動條具體停放在哪裏?咱們能夠經過JS進行找到這個元素而後將滾動條操做到可見元素的位置ip

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

小試牛刀

這裏安靜就拿博客園來舉例子,經過元素進行滾動到可視區域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都作哪些?get

相關文章
相關標籤/搜索