我們知道,在使用Python進行自動化處理過程中,常常需要跟滑鼠打交道,如頁面要求滑鼠單擊、懸停等動作,這時候我們怎麼通過selenium提供的驅動來識別並處理滑鼠事件呢?這就是我們今天來探討和梳理的內容。
我們先來看下自動化測試中為什麼要模擬滑鼠操作。
【基礎知識】
隨著Web前端技術的發展,前端開發人員利用H5、JavaScript、AJAX等技術,使得我們看到的網頁也越來越華麗、交互性也越來越強大,網頁與用戶交互方式也越來越多。這對於用戶來說可能是好事,但是對於Web測試人員來說,網頁提供的這些交互模式使得測試更加複雜。
如何能夠利用selenium提供的驅動來讓瀏覽器自行模擬滑鼠事件,比如單擊、右擊、懸停、拖動等操作。selenium提供了哪些接口函數呢?
瀏覽器模擬處理滑鼠事件的接口類是selenium.webdriver.common.action_chains中的ActionChains類,看著是不是很複雜,其實使用起來一點都不難,大家往下看。
我們來看下本文的重點內容。
【ActionChains方法探討】
正確使用ActionChains類的方法是這樣的
ActionChains(driver).double_click(element).perform()
就這樣一句就可以讓瀏覽器模擬滑鼠進行操作,下面我們對參數進行講解如下:
driver:將瀏覽器驅動作為參數傳遞給ActionChains類
double_click:需要滑鼠模擬的動作,常見的動作有以下幾個
perform(element): 執行所有 ActionChains 中存儲的行為
---context_click(element) 滑鼠右擊
---double_click(element)滑鼠雙擊
---drag_and_drop(element) 拖動滑鼠
---move_to_element(element)滑鼠懸停
這幾個動作名字很好記,直接作為ActionChains的方法調用即可。至於這些方法中傳入的參數element很好理解,就是我們要執行滑鼠動作的元素,它是我們使用webdriver.find_element_by_XXX()中找到的元素。這裡就不再做講解了。
講到這裡,滑鼠操作其實還沒開始執行,我們必須使用perform()方法提交給驅動執行才能算完成了滑鼠事件。
【舉例說明】
我們知道,大部分企業網站的導航條都是這種滑鼠懸停到某一個導航元素中時,展開相應的目錄信息,我們以國內比較出名的一個智能語音服務提供商主頁為例來看一下這個例子。
執行結果我就不截圖展示了,大家可以搜索某大訊飛的主頁測試以下這段代碼。
【總結】
好了,今天的內容就到這裡了,我們只是使用ActionChains展示了滑鼠懸停的使用方法,感興趣的童鞋們可以自己試一下其他的功能。國內很多網際網路廠商都提供了網盤功能,打開這些網盤的頁面,這些頁面往往提供了一些滑鼠右鍵操作的方式,我們可以使用上面的context_click()方法模擬滑鼠右鍵操作。這裡只是做一引申,感興趣的童鞋們自己試試看。後面我們還有精彩內容,歡迎加關注。
轉載請註明出處,百家號:Python高手養成。