下拉框處理(select)

2022-08-23 19:09:08 字數 1224 閱讀 2876

**

在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模組應用,簡便的下拉框處理方法演示。

通過例項select類操作下拉框非常簡單,一行**直接搞定,快上手試試吧。

四、select常用的api方法介紹

select下拉框預設選擇

select標籤構成的下拉框和jquery通過js構建的下拉框用法一樣。例如 html下拉框 啟用 停用 js控制的下拉框 editdisplayname combobox 兩者的本質是相同的,但是,select標籤建立的下拉框會預設選中第乙個選項。而js控制的下拉框預設是不會選中任何選項的。當然s...

jQuery操作select下拉框

1 jquery獲取當前選中select的text值 var checktext slc1 find option selected text 2 jquery獲取當前選中select的value值 var checkvalue slc1 val 3 jquery獲取當前選中select的索引值 v...

實現select下拉框readonly

最近在專案裡面有乙個編輯頁面,一部分人可以編輯,一部分人只能檢視,所以想實現只能檢視的人 不能修改,已辦的input和textarea 都有readonly屬性,但是select卻不行,在國內看了一些帖子的方案是 onbeforeactivate return false nf cus this.b...