在做UI自動化項目的時候,我們不免會遇到一些頁面的內容比較多,導致會有滾動條,但是我們又主要操作當前頁面看不到的元素,這怎么辦呢?
在我們實際操作過程中,我們肯定是直接滑動鼠標操作就可以完成,但是在做自動化的時候,我們怎么辦呢?
今天總結下用js代碼來實現滾動條的操作
在selenium中是使用execute_script方法去執行js語句來實現滾動操作的
語句:execute_script("arguments[0].scrollIntoView();", target)
其中這個target就是通過定位元素找到的元素對象
所以滾動的步驟是:
1、通過selenium找到我們需要的元素
2、通過執行js語句,將元素滾動到可見區域
舉個栗子:
在我的博客首頁中滑動到下一頁
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys
dr = webdriver.Chrome()
dr.get("https://www.cnblogs.com/LCboss/")
dr.implicitly_wait(3)
# dr.find_element(By.ID, "kw").send_keys("騰訊", Keys.ENTER)
target = dr.find_element(By.XPATH, '//a[contains(text(),"下一頁")]')
dr.execute_script("arguments[0].scrollIntoView(false);", target)
還有幾種js操作滾動:
移動到元素的底端與當前窗口的底部對齊:dr.execute_script("arguments[0].scrollIntoView(false);", target)
移動到元素的頂端與當前窗口的頂部對齊:dr.execute_script("arguments[0].scrollIntoView();", target)
移動到頁面底部:dr.execute_script("window.scrollInTo(0, document.body.scrollHeight)")
移動到頁面頂部:dr.execute_script("window.scrollInTo(document.body.scrollHeight,document.body.scrollHeight )")