下拉框处理(select)

摘要:
以select_by_Value为例,分析了select模块的实现原理。一个常见的下拉框由两个标记组成,即选择标记和选项标记。我们可以将选择标记理解为下拉框的框架。Option是其中的每个参数,value是Option标记的一个属性。这就完成了目标选择元素的选择。

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

在UI自动化测试过程中,经常会遇到一些下拉框,我们有三种可选方式来操作下拉框。

第一种方法

基于webdriver的两次click,很容易出现问题,不建议使用。(由于部分下拉框在点击一次后,失去焦点再点下一次时可能下拉框中的参数就消失了,那么就无法进行选择了,所以会出现无法定位到目标元素或目标元素不可见的问题。)

第二种方法

基于Action Chains进行连贯操作,首先点击下拉框,然后移动到目标选中元素,最后在点击一次,代码量很大、复杂,不考虑代码量可以使用。

第三种方法

实际上Selenium给我们提供了专门的指令来处理下拉框,我们只需要导入Selenium提供的模块使用即可。(建议使用)

一、什么场景需要我们可以使用Select模块

HTML中通过select标签生成的下拉框,就可以通过Select模块进行处理

下拉框处理(select)第1张

二、Select模块的原理及源码分析

上面我们说到,select模块只支持HTML页面是通过select标签生成的。实际源码中也有写到,Select类在实例化时接收获取到的select元素对象,在初始化时就通过tag_name判断了是否是select标签。如果不是则实例化直接失败。

下拉框处理(select)第2张

我们以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)第3张

三、Select模块应用,简便的下拉框处理方法演示。

以HTML基础中的其中一个select框为例(链接:http://ui.imdsx.cn/html/#select-test)

通过实例Select类操作下拉框非常简单,一行代码直接搞定,快上手试试吧。


下拉框处理(select)第4张

四、Select常用的Api方法介绍


下拉框处理(select)第5张

免责声明:文章转载自《下拉框处理(select)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jndi和jta事务Flutter实战视频-移动电商-40.路由_Fluro的全局注入和使用方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle- 表查询

这些都比较基础,还是重温一下。 一、简单的查询语句1、查询表结构sql>desc dept; (使用PL/SQL Developer查询时,必需在命令窗口才能使用该语句) 2、查询所有列sql>select * from dept; 3、查询指定列sql>select ename,sal,job,deptno from emp; 4、如何...

Oracle系列之存储过程

涉及到表的处理请参看原表结构与数据Oracle建表插数据等等 判断是否是素数: create or replace procedure isPrime(x number) as flag number:=1; begin if x<2 then dbms_output.put_line('not prime'); else for i in...

Android学习使用基本界面组件(下拉框,单选框,复选框,数字转轮,滚动条)

(一)建立单选框按钮 RadioGroup和RadioButton建立单选框按钮 字符串资源文件: <resources> <string name="app_name">婚姻建议程序</string> <string name="sex">性别:</string> <...

ORACLE DBA命令

1 运行SQLPLUS工具sqlplus 2 以OS的默认身份连接/ as sysdba 3 显示当前用户名show user 4 直接进入SQLPLUS命令提示符sqlplus /nolog 5 在命令提示符以OS身份连接connect / as sysdba 6 以SYSTEM的身份连接connect system/xxxxxxx@服务名 7 显示当然...

SQL 高级语法 (一)

1、SELECT TOP, LIMIT, ROWNUM 子句 说明: SELECT TOP 子句用于规定要返回的记录的数目。 1)SQL Server语法 SELECT TOP number|percent column_name(s) FROM table_name; 2)MySQL语法 SELECT column_name(s) FROM table_...

MySQL快速回顾:计算字段与函数

9.1 计算字段 存储在数据库表中的数据一般不是应用程序所需要的格式。比如: 如果想要在一个字段中既显示公司名,又显示公式的地址,但这两个信息一般包含在不同的表列中。 城市、州和邮政编码存储在不同的列中,但邮件标签打印程序却需要把它们作为一个恰当格式的字段检索出来。 列数据是大小写混合的,但报表程序需要把所有数据按大写表示出来。 在上面举的例子中,存储...