【selenium學習 -12】selenium操作web頁面滾動條


在平時的測試中,有可能需要定位的元素,不在當前的畫面內,就會對滾動條產生一定的操作。對滾動條的操作,實際上也是selenuim對JS的一種操作,正因為selenuim可以對js進行操作,也就有了極大的操作空間

本文主要介紹兩個方法:

scrollTo(x,y) 
x表示橫向距離,y表示縱向距離
其中 x,y的距離,都是以(0,0)為起點的
對比scrollBy() 則是相對當前位置滾動的


scrollIntoView()
函數將被遮擋的元素滾動到可見的屏幕上 scrollIntoView(true)將元素滾動到屏幕中間 scrollIntoView(false)將元素滾動到屏幕底部

實驗例子:打開百度,搜索selenuim,並拉動頁面的滾動條。

from selenium import webdriver
import time

if __name__ == '__main__':
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com/")
    driver.maximize_window()
    driver.find_element_by_id("kw").send_keys("selenium")
    driver.find_element_by_id("su").click()
    time.sleep(3)
    '''
     scrollTo(x,y) x表示橫向距離,y表示縱向距離
     其中 x,y的距離,都是以(0,0)為起點的
     對比scrollBy() 則是相對當前位置滾動的
    '''

    # 將頁面拉到最下方,添加等待時間方便在窗口看結果
    print("將頁面拉到最下方")
    time.sleep(5)
    driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")


    # 將頁面拉到最上方
    print("將頁面拉到最上方")
    time.sleep(5)
    driver.execute_script("window.scrollTo(0,0);")
    time.sleep(5)
# 將頁面向下拉取400像素 print("將頁面向下拉取400像素") time.sleep(5) driver.execute_script("window.scrollTo(0,400);") ''' scrollIntoView函數將被遮擋的元素滾動到可見的屏幕上 scrollIntoView(true)將元素滾動到屏幕中間 scrollIntoView(false)將元素滾動到屏幕底部 ''' # 將搜索selenium的結果頁面的底部page滾動到屏幕中間 print("將搜索selenium的結果頁面的底部page滾動到屏幕中間") time.sleep(5) driver.execute_script("document.getElementById('page').scrollIntoView(true)")

總結:拉動滾動條,其實也是一個操作js的過程,如果有其他的js語句需要執行,也可以采用 driver.execute_script(“js語句”)的方式


免責聲明!

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



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