js操作滾動條


一 滾動的目標

       為了讓自己要操作的元素,滾動到可視區域當中目前,很多網頁是可以自己滾動到可視區域的。當網頁無法滾動到可視區域或界面中存在小的滾動條,需要借助js語句進行滾動操作。

二 自動化中如何操作滾動條

1.在selenium中提供了execute_script()方法去執行js語句來實現滾動操作

2.滾動的步驟是:

(1)通過selenium找到我們需要的元素element

(2)通過執行js語句,將元素滾動到可見區域

3.基本語法:driver.execute_script("arguments[0].scrollIntoView();",element)

4.語法參數說明:

(1)element是通過selenium定位到元素   

(2)在js語句中不能直接接收外部傳來的參數,需要通過arguments進行接收在傳遞,argements是一個列表,可以接收多個外部參數,使用時通過下標取值進行傳遞,例如0代表第一個參數

三 滾動到可視區域的語法

基本語法:element.scrollIntoView();

1、移動到元素element對象的“底端”與當前窗口的“底部”對齊:
driver.execute_script("arguments[0].scrollIntoView(false);",element)

2、移動到元素element對象的“頂端”與當前窗口的“頂部”對齊 :
driver.execute_script("arguments[0].scrollIntoView();",element)

3、移動到頁面底部:
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")

4、移動到頁面頂部:
driver.execute_script("window.scrollTo(document.body.scrollHeight,
0)")

四 舉個栗子

在百度中搜索張韶涵微博

 

 操作代碼如下:

from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time


driver =webdriver.Chrome()
driver.get("http://www.baidu.com")
# 在百度的輸入框中搜索張韶涵,使用鍵盤中的enter按鈕
driver.find_element_by_id('kw').send_keys("張韶涵",Keys.ENTER)
# 通過XPATH定位方法,定位到張韶涵的微博元素
loc =(By.XPATH,'//a[text()="的微博_微博"]')
# 等待元素,直到元素可見
WebDriverWait(driver,20).until(EC.visibility_of_element_located(loc))
ele =driver.find_element(*loc)
# 通過js語句來操作滾動,false滾動到底部位置
driver.execute_script("arguments[0].scrollIntoView(false);",ele)
time.sleep(2)
ele.click()
driver.quit()

 


免責聲明!

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



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