在UI自动化测试过程中,经常会遇到一些下拉框,如果我们基于Webdriver操作的话就需要click两次,而且很容易出现问题,实际上Selenium给我们提供了专门的Select(下拉框处理模块)。

1. 引用路径

from selenium.webdriver.support.select import Select

2.select包内的方法详解

1.获取option元素

options:获取包含select下拉框内所有option项element的列表

all_selected_options: 获取当前选中项element的列表

first_selected_option:获取所有下拉选项中的第一个选项的element(或者获取当前选中的这一项)

2.选择option

select_by_value(values):选择option标签中value属性为:values的选项

select_by_index(index_number):选择索引为index_number的选项(索引从0开始)

select_by_visible_text(text):选择option选项内容为:text的选项

3.复选select的情况(select标签中,multiple="multiple"时,即可多选的select选择框)

deselect_all:
取消所有已选择的选项

deselect_by_value(values):取消选择option标签中value属性为:values的选项

deselect_by_index(index_number):取消选择索引为index_number的选项(索引从0开始)

deselect_by_visible_text(text):取消选择option选项内容为:text的选项

3. 示例

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://ui.imdsx.cn/html/#html')
driver.maximize_window() # 最大化网页
js = 'window.scrollTo(0,1800);' # 打开网页后,定位到某处
driver.execute_script(js) element = driver.find_element_by_xpath('//select[1]')
from selenium.webdriver.support.select import Select # 根据value进行操作
# 如果元素下还有子元素,可以继续通过find进行查找 # 通过选项的value属性值来定位
Select(element).select_by_value('') # ==》四川 # 过select选项的索引来定位选择对应选项(从0开始计数)
Select(element).select_by_index('') # ==》北京 # 通过选项的文本内容来定位
# ==》黑龙江,当输入不存在的text时,抛异常,提示没定位到这个元素
Select(element).select_by_visible_text('黑龙江12') # 获取所有下拉选项中的第一个选项的element(或者获取当前选中的这一项)
Select(element).first_selected_option # ==> 辽宁 # 返回所有选中的optionElement对象(获取当前选中项element的列表)
Select(element).all_selected_options # 取消所有选中的option
Select(element).deselect_all() # 通过option的index来取消对应的option
Select(element).deselect_by_index('') # 通过value属性,来取消对应option
Select(element).deselect_by_value('') # 通过option的文本内容,取消对应的option
Select(element).deselect_by_visible_text('')

selenium中的下拉框处理模块Select的更多相关文章

  1. selenium自学笔记---下拉框定位元素select

    下拉框1.先定位select 然后在定位option city = driver.find_element_by_id("selCities_0") city.find_eleme ...

  2. Selenium:下拉框处理(Select模块)

    在UI自动化测试过程中,经常会遇到一些下拉框,如果我们基于Webdriver操作的话就需要click两次,而且很容易出现问题,实际上Selenium给我们提供了专门的Select(下拉框处理模块). ...

  3. 选择屏幕中的下拉框和dialog中下拉框设计

    REPORT  YTEST014. PARAMETERS: auart LIKE vapma-auart  AS LISTBOX   VISIBLE LENGTH 6. AT SELECTION-SC ...

  4. ASP.NET MVC中的cshtml页面中的下拉框的使用

    ASP.NET MVC中的cshtml页面中的下拉框的使用 用上@Html.DropDownList 先记下来..以做备忘...

  5. jquery中的下拉框

    1.1select获取选中的value值 <label for="select"> <select id="key_RedemptionMode&quo ...

  6. easy ui 下拉框绑定数据select控件

    easy ui 中的下拉框控件叫做select,具体代码如下: html代码:①.这是一个公司等级的下拉框 <tr> <td>公司等级:</td> <td&g ...

  7. jquery 获取下拉框值与select text

    下面先介绍了很多jquery获取select属性的方法,同时后面的实例我们讲的是jquery 获取下拉框值与select text代码. 下面先介绍了很多jquery获取select属性的方法,同时后 ...

  8. Selenium WebDriver-操作下拉框内容

    操作下拉框中的内容 #encoding=utf-8 import unittest import time import chardet from selenium import webdriver ...

  9. 自动化测试-11.selenium的下拉框处理类Select

    前言 最近由于工作原因,更新慢了一点,今天终于抽出一点时间给大家继续更新selenium系列,学习的脚本不能停止,希望小伙伴能多多支持. 本篇以百度设置下拉选项框为案例,详细介绍select下拉框相关 ...

随机推荐

  1. 11 Django RESTful framework 实现缓存

    01-安装 pip install drf-extensions 02-导入 from rest_framework_extensions.cache.mixins import CacheRespo ...

  2. vue页面固定锁死

  3. LR IP欺骗

    一.设置IP欺骗的原因: 1.当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达压力测试的效果 2.某些服务器配置了负载均衡,使用同一个 ...

  4. ES6 Promise 用法讲解

    Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法. 那就new一个 var p = new Promise( ...

  5. cordova的常用命令

    常用命令 npm install -g cordova // 加载cordovecordova create MyApp //创建一个新的文件夹cd MyApp //找到当前目录cordova pla ...

  6. 回温js算法

    ---恢复内容开始--- 一,冒泡排序. 具体算法描述如下: <1>.比较相邻的元素.如果第一个比第二个大,就交换它们两个: <2>.对每一对相邻元素作同样的工作,从开始第一对 ...

  7. noip2017部分题目

    D1T3 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张NN个点MM条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,NN号点是公园的出口,每条边有一个非负权值, 代表策策经过 ...

  8. Codeforces Round #549 (Div. 1)

    今天试图用typora写题解 真开心 参考 你会发现有很多都是参考的..zblzbl Codeforces Round #549 (Div. 1) 最近脑子不行啦 需要cf来缓解一下 A. The B ...

  9. 第四届 CCCC 团体程序设计天梯赛 游记

    我们可能是唯一一个去参加这个比赛的中学生吧(划掉) DAY -inf 一天教练给我们说有这么个比赛,要选人,于是就愉快的开展了一次打字比赛 说实话手真的要抽筋了 不过最后还好涉险过关 DAY -1 疯 ...

  10. 利用反射将IDataReader读取到实体类中效率低下的解决办法

    最开始使用反射一个类型的各个属性,对气进行赋值的代码如下: public static List<T> ToList<T>(IDataReader reader) { //实例 ...