1. 程式人生 > >下拉框處理(select)

下拉框處理(select)

mds 對象 鏈接 分享圖片 自動化測試 導入 class 分享 clas

轉:http://www.imdsx.cn/index.php/2017/12/04/select/

在UI自動化測試過程中,經常會遇到一些下拉框,我們有三種可選方式來操作下拉框。

第一種方法

基於webdriver的兩次click,很容易出現問題,不建議使用。(由於部分下拉框在點擊一次後,失去焦點再點下一次時可能下拉框中的參數就消失了,那麽就無法進行選擇了,所以會出現無法定位到目標元素或目標元素不可見的問題。)

第二種方法

基於Action Chains進行連貫操作,首先點擊下拉框,然後移動到目標選中元素,最後在點擊一次,代碼量很大、復雜,不考慮代碼量可以使用。

第三種方法

實際上Selenium給我們提供了專門的指令來處理下拉框,我們只需要導入Selenium提供的模塊使用即可。(建議使用)

一、什麽場景需要我們可以使用Select模塊

HTML中通過select標簽生成的下拉框,就可以通過Select模塊進行處理

技術分享圖片

二、Select模塊的原理及源碼分析

上面我們說到,select模塊只支持HTML頁面是通過select標簽生成的。實際源碼中也有寫到,Select類在實例化時接收獲取到的select元素對象,在初始化時就通過tag_name判斷了是否是select標簽。如果不是則實例化直接失敗。

技術分享圖片

我們以select_by_value為例,分析select模塊實現原理。

分析select的源碼還是需要有一定的知識儲備量的,比如HTML基礎知識和Css Selector定位的寫法格式。

普通的下拉框由兩個標簽組成,select標簽與option標簽,我們可以將select標簽理解為下拉框的架子,option是裏面每個參數,其中value則為option標簽的一種屬性。

了解了上面的html基礎知識後,在看源碼實際就很簡單了,在實例化Select類後,通過再次獲取Select對象中符合要求的option(這裏通過css selector的定位方式,根據option的value屬性定位我們需要的那個元素),循環處理獲取到的option,通過is_selected方法判斷是否被選中,如果沒有選中則再次點擊下。就完成了目標select元素的選中操作。

技術分享圖片

三、Select模塊應用,簡便的下拉框處理方法演示。

以HTML基礎中的其中一個select框為例(鏈接:http://ui.imdsx.cn/html/#select-test)

通過實例Select類操作下拉框非常簡單,一行代碼直接搞定,快上手試試吧。


技術分享圖片

四、Select常用的Api方法介紹


技術分享圖片

下拉框處理(select)