选择下拉列表最大索引值 Select From List By Max Index
2015-04-24 23:03
337 查看
Select是网页表单中较为常见的元素,在Selenium2Library 中也有相应关键字可以操作,比如:
(1)通过指定索引选择
Name: Select From List By Index Arguments: [ locator | *indexes ]
Selects `*indexes` from list identified by `locator`
(2)通过指定文本选择
Name: Select From List By Label Arguments: [ locator | *labels ]
Selects `*labels` from list identified by `locator`
(3)通过指定value选择
Name: Select From List By Value Arguments: [ locator | *values ]
Selects `*values` from list identified by `locator`
(4)可以同时选择多项
Name: Select From List Arguments: [ locator | *items ]
Selects `*items` from list identified by `locator`
(5)选择所有项
Name: Select All From List Arguments: [ locator ]
Selects all values from multi-select list identified by `id`.
为了快速操作方便,我们实现一个让Select自动赋最大索引值的方法。为什么是最大索引值而不是最小呢,比如第一个option为"" 或者"请选择",即使选中也是不符合要求的。所以继续看代码:
第1行:get_list_items获取select 的options集合
第2行:获取options集合中项的个数,注意此处用'$' 而不是'@'
第3行:通过计算得到所要的索引值
第4行:借用Select From List By Index 根据索引选择
至此,已经实现了想要的功能,但是还比较粗糙。如果options 的长度为0(这种情况是有可能的) ,并且在实际使用过程中发现如果options集合过大会有明显的等待过程,我们来看下get_list_items函数:
可以看到函数内部引用了_get_select_list_options 和 _get_labels_for_options
先看_get_select_list_options
这里只是一个简单地判断,并返回结果。看来症结应该是在_get_labels_for_options函数了
一个for 循环,虽然时间复杂度只有O(n)但也会因为options的长度变长而耗时
(1)通过指定索引选择
Name: Select From List By Index Arguments: [ locator | *indexes ]
Selects `*indexes` from list identified by `locator`
(2)通过指定文本选择
Name: Select From List By Label Arguments: [ locator | *labels ]
Selects `*labels` from list identified by `locator`
(3)通过指定value选择
Name: Select From List By Value Arguments: [ locator | *values ]
Selects `*values` from list identified by `locator`
(4)可以同时选择多项
Name: Select From List Arguments: [ locator | *items ]
Selects `*items` from list identified by `locator`
(5)选择所有项
Name: Select All From List Arguments: [ locator ]
Selects all values from multi-select list identified by `id`.
为了快速操作方便,我们实现一个让Select自动赋最大索引值的方法。为什么是最大索引值而不是最小呢,比如第一个option为"" 或者"请选择",即使选中也是不符合要求的。所以继续看代码:
第1行:get_list_items获取select 的options集合
第2行:获取options集合中项的个数,注意此处用'$' 而不是'@'
第3行:通过计算得到所要的索引值
第4行:借用Select From List By Index 根据索引选择
至此,已经实现了想要的功能,但是还比较粗糙。如果options 的长度为0(这种情况是有可能的) ,并且在实际使用过程中发现如果options集合过大会有明显的等待过程,我们来看下get_list_items函数:
可以看到函数内部引用了_get_select_list_options 和 _get_labels_for_options
先看_get_select_list_options
这里只是一个简单地判断,并返回结果。看来症结应该是在_get_labels_for_options函数了
一个for 循环,虽然时间复杂度只有O(n)但也会因为options的长度变长而耗时
相关文章推荐
- 下拉列表选择控件, 用于替换原生的 select 控件
- select下拉列表判断是否进行了选项的选择
- 批次查找策略select * from 存取顺序找到的批次表table where 选择条件B sort by 排序C
- select下拉列表判断是否进行了选项的选择
- select下拉列表动态显示选择公司及部门信息——级联
- selenium 用java得到select下拉列表选择的值
- jQuery实现Select下拉列表进行状态选择功能
- [置顶] select 下拉列表选择框效果及美化(before 和 :after伪元素的妙用)
- Select From List 下拉列表框定位
- jsp获取下拉列表select选择的值
- select下拉列表 和 radio单选按钮控件开关---- 根据值选择选项 & change事件
- 在JSP页面中用select下拉列表来显示List列表的方式
- struts2 select标签对Action中传递过来的List集合生成下拉列表
- jquery判断input checkbox是否选择 select下拉列表选择的value
- Select-下拉列表选择插件(包含下拉选择图片,下拉grid等)
- Selenium2Library系列 keywords 之 _SelectElementKeywords 之 select_from_list_by_value(self, locator, *values)
- select 自动选择 检查下拉列表
- select下拉列表获取value text index
- Selenium2Library系列 keywords 之 _SelectElementKeywords 之 select_from_list_by_label(self, locator, *labels)
- Select 下拉列表选择插件 (包含下拉选择图片,下拉grid等)