下拉框处理(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方法介绍

原文地址:https://www.cnblogs.com/shmily2018/p/9278762.html

时间: 2024-10-08 19:23:52

下拉框处理(select)的相关文章

Jquery+json绑定带层次下拉框(select控件)

一.实现的效果图 二.主要代码 html代码 <select id="pid" runat="server"> <option value="0" data="|0|">不选父级类</option> </select> Jquery代码 var html = ['<option value="0">不选父级模块</option>'];

Asp.net绑定带层次下拉框(select控件)

1.效果图 2.数据库中表数据结构 3.前台页面 <select id="pid" runat="server"> <option value="0" data="|0|">不选父级类</option> </select> 备注:查看源代码 4.后台代码 using System; using System.Data; using System.Web.UI.WebControl

11 Python+selenium对下拉框(select)进行处理

[环境信息] Python3.4+IE+windows2008 [Select下拉框处理] 1.对于如图1的下拉框,可以用selenium自带的Select类进行选择. 2.定位示例: from selenium.webdriver.support.select import Select # 责任部门 Select(self.driver.find_element_by_id('linkDutyDept')).select_by_visible_text('市场经营部门') 3.说明 Sele

ajax实现下拉框(&lt;select&gt;)

许多页面上都涉及有下拉框,即select标签.对于简单的下拉框,被选择的数据是不需要改变的,我们可以用<option></option>写死.这样下拉框的数据永远都是那几条. 示例: 1 <select> 2 <option>信息一</option> 3 <option>信息二</option> 4 <option>信息三</option> 5 <option>信息四</optio

多选下拉框(select 下拉多选)

方法一:使用multiple-select.js和multiple-select .css实现 HTML代码: <select id='checkedLevel' style="width:120px;height:28px;" multiple="multiple"> <option value="1">选项1</option> <option value="2">选项1<

selenium - webdriver 下拉框处理select

针对<select>标签,可使用如下方法: select_by_value()   通过value值定位下拉选项 select_by_index()   通过下拉选项的索引定位,从0开始 select_by_visible_text()   通过text值定位 百度搜索下拉框,如下: 分别选择每页显示20条,10条,50条: 1 from selenium import webdriver 2 import time 3 from selenium.webdriver.support.sele

jquery实现可编辑的下拉框( input + select )

HTML: <input id="inputModel" /> <select name="EngineModel" size="10" style="height: auto; margin-left: 120px; position: absolute; display: none;"></select> Jquery: //获取select var engine = $('select

获取多选下拉框(select标签设置multiple属性)的值

原文链接:https://blog.csdn.net/qq846294282/article/details/82427002   (侵删) <select multiple>不能直接获取value,需要借助该元素的options属性.如下: <select id="select" multiple> <option value="1">1111</option> <option value="2&qu

selenium处理select标签的下拉框

有时候我们会碰到<select></select>标签的下拉框.直接点击下拉框中的选项不一定可行.Selenium专门提供了Select类来处理下拉框. <select id="status" class="form-control valid" onchange="" name="status"> <option value=""></option&g

用div,ul,input模拟select下拉框

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>案例测试</title> 6 <link rel="stylesheet" href="css/all.css" /> 7 <script type="text/javascript" src=&