UI自動化:瀏覽器常用操作及滾動條滑動


在UI自動化實施過程中,存在一些元素定位和鼠標鍵盤操作無法解決的問題,比如滑動瀏覽器滾動條,某些元素出現在可見范圍內等等。

 

selenium中有幾種直接操作瀏覽器動作,刷新頁面操作如下:

# 刷新頁面
driver.refresh()

常用的還有,

back():瀏覽器訪問頁面回退

forward():瀏覽器訪問頁面前進

close():關閉當前窗口

quit():關閉所有窗口和瀏覽器

這里close和quit的使用容易混淆,close相當於只作用於當前句柄窗口,quit作用於整個瀏覽器。

 

除此之外,還有些瀏覽器操作是selenium無法直接完成的,需要通過發送js代碼間接完成,這里就要介紹一個driver新的方法,

execute_script():里面的參數是字符串格式的js代碼,這里以滑動瀏覽器滾動條至最底部為例,

因此首先我們要知道,使用純js代碼如何實現滑動瀏覽器滾動條,很簡單:

// x,y為橫,縱坐標位置,單位px
window.scrollTo(x, y)

如果將滾動條滑至距窗口頂部1000px的位置,

window.scrollTo(0, 1000)

如果想滑到窗口最底部呢?每一個網頁頁面的高度可能不同,所以可以使用如下方法,

window.scrollTo(0, document.body.scrollHeight)

結合上面driver的方法,我們可以將js代碼通過python發送給瀏覽器驅動,

driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')

想要滑動橫着的滾動條,只需要修改x的值即可。

 

上面是對整個瀏覽器的滾動條操作,假設現在我們只需要讓頁面中某個元素可見,又該如何操作呢?

此處以簡書官網首頁的【查看全部】鏈接為例,

瀏覽大致和操作瀏覽器滾動條一樣,

element = driver.find_element_by_class_name('find-more')
driver.execute_script("arguments[0].scrollIntoView(false);", element)

execute_script第一個參數是想要發送的js代碼,第二個參數是待操作的元素。scrollIntoView里的false是讓【查看全部】鏈接在窗口底部可見,該參數默認為true,元素會在窗口頂部可見,但是有些時候會被頂部的懸浮導航欄遮擋,因此具體如何使用根據實際情況決定。


免責聲明!

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



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