在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. Linux新增和删除环境变量

    vi ~/.bashrc 添加 export 变量名=值 使环境变量生效 source ~/.bashrc

  2. [认证授权] 5.OIDC(OpenId Connect)身份认证(扩展部分)

    在上一篇[认证授权] 4.OIDC(OpenId Connect)身份认证(核心部分)中解释了OIDC的核心部分的功能,即OIDC如何提供id token来用于认证.由于OIDC是一个协议族,如果只是 ...

  3. CentOS7.x安装kickstart

    kickstart简介 kickstartkickstart是RedHat公司开源的软件,所以对CentOS兼容性最好,是一种无人值守的安装方式就是将手动安装配置的步骤,记录到文件中,然后通过kick ...

  4. 如何把Office365的更新从半年通道改成月度通道

    转自msdn,转发链接:www.cnblogs.com/Charltsing/p/Office365month.html 作者QQ: 564955427 建立一个Bat文件,写入 下面内容 setlo ...

  5. Python操作Excel 之 openpyxl

    一.基础 安装openpyxl 模块 pip install openpyxl 或者通过轮子安装 font(字体类):字号.字体颜色.下划线等 fill(填充类):颜色等 border(边框类):设置 ...

  6. C# NetStream

    标题:NetStream 关注点:Read.Write 正文: int size = Read(buf, 0, buf.length); 这里一次会读入length个字节,如果小于这个数量,后面的就是 ...

  7. x86汇编寄存器,函数参数入栈说明

    https://en.wikipedia.org/wiki/X86_calling_conventions

  8. BZOJ 1855 股票交易 (算竞进阶习题)

    单调队列优化dp dp真的是难..不看题解完全不知道状态转移方程QAQ 推出方程后发现是关于j,k独立的多项式,所以可以单调队列优化.. #include <bits/stdc++.h> ...

  9. [HNOI2001] 产品加工

    题目类型:\(DP\) 传送门:>Here< 题意:有\(N\)个零件,每个零件有三种选择,在\(A\)机器加工,在\(B\)机器加工,同时在\(AB\)加工.其中所需要的时间分别为\(t ...

  10. Codeforces Round #543

    (比赛链接)[http://codeforces.com/contest/1120] A 给出一个长度为m的序列a 可以删除一些数 使得最后从没删的第一个数开始 每k个一截 截出的n个多重集合中 至少 ...