在web自動化中,會遇到想要定位的內容,因爲電腦分辨率的問題致使,須要定位的元素可能沒有在頁面上展現出來,這個時候咱們應該怎麼作呢?正常狀況下,確定是點擊滾動條,找到想要的元素,而後進行操做。問題來了,selenium有沒有辦法操做滾動呢?selenium目前沒有好的辦法進行操做滑動條,可是前面介紹的JS有這個功能哈web
滾動條:滾動條是在咱們使用軟件沒法顯示整個界面的時候,右側的一個能夠滾動的用於顯示剩下界面的條spa
知道了滾動條是什麼,那麼咱們如何經過JS進行操做呢?code
JS操做滾動條有幾種blog
# JS滾動條到頂部 js="var q=document.getElementById('id').scrollTop=0"
# 滾動條到底部, 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