简介

在web自动化测试中,经常会遇到下拉框,对列出的选项进行选择,或者判断选择的选项,本文将介绍如何使用Selenium去操作下拉框,实现自动化测试。

测试页面

测试URL:http://sahitest.com/demo/selectTest.htm

Select方法

使用WebElement类的send_keys(value)方法也可以选择下拉框(select标签)的值,但它只能使用选项的value值来定位:

self.driver.get("http://sahitest.com/demo/selectTest.htm")ele = self.driver.find_element_by_id('s3Id')print(ele.text) # 打印select所有选项值ele.send_keys("o2val") # 选择value=o2val 的选项print(ele.get_attribute("value")) # 打印所选择的value值

结果:

o1o2o3    With spaces    With nbspo2val

select类所有方法:

  1. select_by_index(index):通过选项index选择

  2. select_by_value(value):通过选项value值选择

  3. select_by_visible_text(text):过显示的文本选择

  4. deselect_by_index(index):取消选择,用于多选

  5. deselect_by_value(value):取消选择,用于多选

  6. deselect_by_visible_text(text):取消选择,用于多选

  7. deselect_all():全部取消,用于多选

  8. options:所有选项

  9. first_selected_option:第一个选择的选项(多选情况下)或者当前选择的选项(单选)

  10. all_selected_options:所有已经选择的选项

选择

select_by_index、select_by_value、select_by_visible_text三种方法选择

first_selected_option.text返回当前所选择的选项值

self.driver.get("http://sahitest.com/demo/selectTest.htm")ele = self.driver.find_element_by_id('s3Id')selected_element = Select(ele)  # 实例化Selectselected_element.select_by_index(1)# for select in selected_element.all_selected_options:#     print(select.text)print(selected_element.first_selected_option.text) # 打印当前选择的选项值sleep(1)selected_element.select_by_value("o2val")print(selected_element.first_selected_option.text)sleep(1)selected_element.select_by_visible_text("o3")print(selected_element.first_selected_option.text)sleep(1)

结果:

o1 o2 o3

取消选择

取消选择deselect不能用于下拉框选择,只能用于多选,即属性multiple="multiple"的select标签。

取消选择有deselect_by_indexdeselect_by_valuedeselect_by_visible_textdeselect_all四种方法

all_selected_options返回所有已选择的选项

self.driver.get("http://sahitest.com/demo/selectTest.htm")## 多选ele2 = self.driver.find_element_by_id('s4Id')selected_element2 = Select(ele2)  # 实例化Selectselected_element2.select_by_index(1)selected_element2.select_by_index(2)selected_element2.select_by_index(3)print("######")for select in selected_element2.all_selected_options:    print(select.text)print("######")selected_element2.deselect_by_index(1)for select in selected_element2.all_selected_options:    print(select.text)print("######")selected_element2.deselect_by_value("o2val")for select in selected_element2.all_selected_options:    print(select.text)print("######")selected_element2.deselect_by_visible_text("o3")for select in selected_element2.all_selected_options:    print(select.text)

结果:

######o1o2o3######o2o3######o3######

vue如何取消下拉框按回车自动下拉_Web自动化测试 | Select下拉框相关推荐

  1. html下拉框设置默认值_如何设置HTML select下拉框的默认值?

    HTML中的select标签用于创建可选择选项的下拉列表:option标签包含选定时将使用的值.那么如何来设置select下拉框里的默认值?下面本篇文章就来给大家介绍一下,希望对大家有所帮助. 我们可 ...

  2. layui下拉框怎么获取自定义值_layui如何得到select下拉框选中的值?

    layui如何得到select下拉框选中的值?下面本篇文章介绍一下layui取得select下拉框选中值的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. layui如何得到se ...

  3. 前端下拉框能支持手动输入_可输入的select下拉框

    当select下拉框中没有要选择的信息项时,可以直接在select中输入自己想要得信息项. 在输入信息项时,不改变select下拉框中原有的信息项. 通过Backspace键可以清除刚才输入的信息项, ...

  4. vue如何取消下拉框按回车自动下拉_如何用大白菜重装系统|大白菜怎么重装系统教程详解...

    我们在电脑出现崩溃故障的问题时,都会通过重装系统解决,现在重装系统很方便,比如用大白菜做成的启动U盘就可以重装系统,很多人还不知道怎么用大白菜重装系统,接下来系统城小编就跟大家介绍大白菜怎么重装系统的 ...

  5. vue如何取消下拉框按回车自动下拉_按逗号拆分Excel单元格,再分离中文数字,春节压岁钱统计就用它...

    大家春节好! 大年三十还在坚持更新的小编估计也没几个了. 今天这篇推送,是为了趁热打铁,教大家统计萌娃们收到的压岁钱.具体要求是:按分隔符将一个单元格拆分成多个,且分离中文和数字,并且转置成竖向表格. ...

  6. html下拉选择图片,图片+JavaScript+CSS打造漂亮的select下拉选择框

    下拉select选择框 body{margin:20px auto;font-family:Arial,Helvetica,sans-serif;font-size:12px;width:950px; ...

  7. html 下拉组件被下面的组件挡住,div被select下拉框挡住了--5种解决方法

    在IE中,select属于window类型控件,它会"挡住"所有非window类型控件 可以这么理解,div这样的组件是在浏览器客户区使用代码"渲染"的, 他们 ...

  8. c mvc ajax 返回下拉框,SpringMVC之ajax+select下拉框交互常用方式

    Insert title here //ajax+select三种常用交互方式 window.οnlοad=function(){ test(); } function test(){ alert(& ...

  9. select下拉框如何触发函数并传递参数

    select下拉框和函数触发怎么写 首先需要写select下拉框的HTML代码,标准格式如下 <form><select id="para_region" nam ...

最新文章

  1. python安装不了bs4_怎么在python安装bs4
  2. python numpy np.fromstring()函数(从字符串文本中提取数字,返回一维数组)(爬虫提取数字挺好用的)
  3. php mysqli new 连接,php mysqli 连接数据库
  4. autowired 静态方法使用_关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...
  5. Golang.org不能访问解决方法
  6. java蓝桥杯dfs_第七届 蓝桥杯决赛 Java B组 打靶 解题报告(DFS,回溯,全排列)-Go语言中文社区...
  7. 10月第3周安全回顾:恶意软件肆虐 Web安全重点关注
  8. U3D NGUI改变GameObject Activity闪烁的问题
  9. iphone 推送服务--Apple Push Notification Service
  10. cocos2d-x关于CCTableView的“乱序问题”的理解
  11. P-Associated-URI
  12. STM32 CubeMX 串口通信
  13. Wireshark捕获过滤器
  14. 概率密度函数曲线及绘制
  15. 上半年要完成的博客占坑77
  16. 从顺序数组1到10中查找数字 并打印下标
  17. 新能源车企凶猛下沉,“新车商”会是一条捷径吗?
  18. 爆料!滴滴或于4-5月开启第二轮裁员,内部员工透露细节:或无赔偿!
  19. Html:简单实现弹砖块小游戏
  20. 一位二本毕业4年的java程序员

热门文章

  1. U-Boot 之三 U-Boot 源码文件解析及移植过程详解
  2. makefile文件中的依赖关系理解
  3. Win32控制台程序如何使用CString的方法
  4. 51单片机控制步进电机的c语言程序,用AT89C51单片机控制步进电机的汇编源程序...
  5. kernel 中标准的 ir 模块的 时间的定义_Linux开机流程详解:BIOSgt;MBRgt;GRUBgt;Kernel...
  6. Git 下载很慢问题解决方案
  7. mysql 5.7 循环语句_MySQL循环语句|mysql|loop|delimiter|procedure|调用_网易订阅
  8. 张家港职称计算机应用能力考试,2016年江苏张家港计算机应用能力考试零基础备考...
  9. 谷歌浏览器chrome的vuejs devtools 插件的安装
  10. python的文件式如何操作_Python文件操作