下拉框處理(select)


轉: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方法介紹



免責聲明!

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