下拉框处理(select)
在UI自動(dòng)化測(cè)試過(guò)程中,經(jīng)常會(huì)遇到一些下拉框,我們有三種可選方式來(lái)操作下拉框。
第一種方法
基于webdriver的兩次click,很容易出現(xiàn)問(wèn)題,不建議使用。(由于部分下拉框在點(diǎn)擊一次后,失去焦點(diǎn)再點(diǎn)下一次時(shí)可能下拉框中的參數(shù)就消失了,那么就無(wú)法進(jìn)行選擇了,所以會(huì)出現(xiàn)無(wú)法定位到目標(biāo)元素或目標(biāo)元素不可見(jiàn)的問(wèn)題。)
第二種方法
基于Action Chains進(jìn)行連貫操作,首先點(diǎn)擊下拉框,然后移動(dòng)到目標(biāo)選中元素,最后在點(diǎn)擊一次,代碼量很大、復(fù)雜,不考慮代碼量可以使用。
第三種方法
實(shí)際上Selenium給我們提供了專門的指令來(lái)處理下拉框,我們只需要導(dǎo)入Selenium提供的模塊使用即可。(建議使用)
一、什么場(chǎng)景需要我們可以使用Select模塊
HTML中通過(guò)select標(biāo)簽生成的下拉框,就可以通過(guò)Select模塊進(jìn)行處理
二、Select模塊的原理及源碼分析
上面我們說(shuō)到,select模塊只支持HTML頁(yè)面是通過(guò)select標(biāo)簽生成的。實(shí)際源碼中也有寫(xiě)到,Select類在實(shí)例化時(shí)接收獲取到的select元素對(duì)象,在初始化時(shí)就通過(guò)tag_name判斷了是否是select標(biāo)簽。如果不是則實(shí)例化直接失敗。
我們以select_by_value為例,分析select模塊實(shí)現(xiàn)原理。
分析select的源碼還是需要有一定的知識(shí)儲(chǔ)備量的,比如HTML基礎(chǔ)知識(shí)和Css Selector定位的寫(xiě)法格式。
普通的下拉框由兩個(gè)標(biāo)簽組成,select標(biāo)簽與option標(biāo)簽,我們可以將select標(biāo)簽理解為下拉框的架子,option是里面每個(gè)參數(shù),其中value則為option標(biāo)簽的一種屬性。
了解了上面的html基礎(chǔ)知識(shí)后,在看源碼實(shí)際就很簡(jiǎn)單了,在實(shí)例化Select類后,通過(guò)再次獲取Select對(duì)象中符合要求的option(這里通過(guò)css selector的定位方式,根據(jù)option的value屬性定位我們需要的那個(gè)元素),循環(huán)處理獲取到的option,通過(guò)is_selected方法判斷是否被選中,如果沒(méi)有選中則再次點(diǎn)擊下。就完成了目標(biāo)select元素的選中操作。
三、Select模塊應(yīng)用,簡(jiǎn)便的下拉框處理方法演示。
以HTML基礎(chǔ)中的其中一個(gè)select框?yàn)槔?#xff08;鏈接:http://ui.imdsx.cn/html/#select-test)
通過(guò)實(shí)例Select類操作下拉框非常簡(jiǎn)單,一行代碼直接搞定,快上手試試吧。
四、Select常用的Api方法介紹
?
轉(zhuǎn)載于:https://www.cnblogs.com/xuzhongtao/p/9614039.html
總結(jié)
以上是生活随笔為你收集整理的下拉框处理(select)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python学习-----9.7----
- 下一篇: JavaScript深拷贝—我遇到的应用