Python+Selenium笔记(八):操作下拉菜单
(一) Select类
Select类是selenium的一个特定的类,用来与下拉菜单和列表交互。
下拉菜单和列表是通过HTML的<select> 元素实现的。选择项是通过<select>中的<option>元素实现的。使用前使用下面的语句导入模块。
from selenium.webdriver.support.ui import Select
(二) Select类的功能及方法
功能/属性 |
简单说明 |
all_selected_options |
获取下拉菜单和列表中被选中的所有选项内容 |
first_selected_option |
获取下拉菜单和列表的第一个选项 |
options |
获取下拉菜单和列表的所有选项 |
方法 |
简单说明 |
deselect_all() |
清除多选下拉菜单和列表的所有选择项 |
deselect_by_index(index) |
根据索引清除下拉菜单和列表的选择项 Index:要清除目标的索引 |
deselect_by_value(value) |
清除和给定参数匹配的下拉菜单和列表的选择项 value:要清除目标选择项的value属性 |
deselect_by_visible_text(text) |
清除和给定参数匹配的下拉菜单和列表的选择项 text:要清除目标选择项的文本值 |
select_by_index(index) |
根据索引选择下拉菜单和列表的选择项 |
select_by_value(value) |
选择和给定参数匹配的下拉菜单和列表的选择项 |
select_by_visible_text(text) |
选择和给定参数匹配的下拉菜单和列表的选择项 |
(三) 示例(检查12306注册页面的证件类型是否与预期一致)
from selenium import webdriver
import unittest
from selenium.webdriver.support.ui import Select
class Register(unittest.TestCase):
...省略setup(这段就不注释了)
def test_register(self):
card_type =['二代身份证','港澳通行证','台湾通行证','护照']
card_type_options = []
#定位证件类型字段,作为Select类的对象实例
select_card_type = Select(self.driver.find_element_by_id('cardType'))
#检查默认选项是否为'二代身份证'
self.assertTrue(select_card_type.first_selected_option.text == '二代身份证')
#页面提供的证件类型选项数量是否为4个
self.assertEqual(4,len(select_card_type.options))
#将页面上每个选项的文本值添加到 card_type_options[]
for s in select_card_type.options:
card_type_options.append(s.text)
#检查页面上证件类型选项是否与预期一致
self.assertListEqual(card_type,card_type_options)
select_card_type.select_by_index(1) #选择索引为1的选项(港澳通行证)
#检查选择港澳通行证时,是否显示出生日期字段
self.assertTrue(self.driver.find_element_by_id('born_date').is_displayed())
select_card_type.select_by_value('B') #选择value = 'B'的选项(护照)
select_card_type.select_by_visible_text('二代身份证') #选择文本为 二代身份证的选项
...省略tearDown(这段就不注释了)
Python+Selenium笔记(八):操作下拉菜单的更多相关文章
- 『心善渊』Selenium3.0基础 — 13、Selenium操作下拉菜单
目录 1.使用Selenium中的Select类来处理下拉菜单(推荐) 2.下拉菜单对象的其他操作(了解) 3.通过元素二次定位方式操作下拉菜单(重点) (1)了解元素二次定位 (2)示例: 页面中的 ...
- java poi excel操作 下拉菜单 及数据有效性
1 private InputStream updateTemplateStyleHSSF(InputStream inputStream,CsCustCon csCustCon) throws IO ...
- 吾八哥学Selenium(四):操作下拉框select标签的方法
我们在做web页面自动化测试的时候会经常遇到<select></select>标签的下拉框,那么在Python里如何实现去操作这种控件呢?今天就给大家分享一下这个玩法.为了让大 ...
- Selenium下拉菜单(Select)的操作-----Selenium快速入门(五)
对于一般元素的操作,我们只要掌握本系列的第二,三章即可大致足够.对于下拉菜单(Select)的操作,Selenium有专门的类Select进行处理.文档地址为:http://seleniumhq.gi ...
- selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等
selenium的用法 selenium2.0主要包含selenium IDE 和selenium webDriver,IDE有点类似QTP和LoadRunner的录制功能,就是firefox浏览器的 ...
- Python+selenium下拉菜单选项
案例:在我要自学网登录页面选择要保留的时间 具体页面如图所示: 使用前端工具查看部分页面代码: <select class="loinp" name="Cookie ...
- selenium基础(下拉菜单操作)
selenium基础(下拉菜单操作) 非select/option元素: 1.触发下拉列表出现 2.等待下拉列表中的元素出现,然后进行选择元素即可. select/option元素: 下拉框操作-Se ...
- Bootstrap入门(八)组件2:下拉菜单
Bootstrap入门(八)组件2:下拉菜单 先引入本地的CSS文件和JS文件(注:1.bootstrap是需要jQuery支持的.2.需要在<body>当中添加) <link ...
- selenium.common.exceptions.ElementNotVisibleException: Message: element not visible处理方法:selenium针对下拉菜单事件的处理
使用Selenium爬虫时,可能会遇到一些下拉菜单,动态加载,如果直接使用find_element_by_函数会报错,显示selenium.common.exceptions.ElementNotVi ...
随机推荐
- android开发学习——day7
线性布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...
- CentOS7下RabbitMQ服务安装配置
参考文档: CentOS7下RabbitMQ服务安装配置 http://www.linuxidc.com/Linux/2016-03/129557.htm 在linux下安装配置rabbitMQ详细教 ...
- JAVA面试精选【Java基础第三部分】
上一篇,我们给出了大概35个题目,都是基础知识,有童鞋反映题目过时了,其实不然,这些是基础中的基础,但是也是必不可少的,面试题目中还是有一些基础题目的,我们本着先易后难的原则,逐渐给出不同级别的题目, ...
- CentOS 6.7 下 MYSQL 5.7 的安装与配置
安装 #yum源 http://dev.mysql.com/downloads/repo/yum/ #安装 rpm -Uvh http://dev.mysql.com/get/mysql57-comm ...
- mpvue图片轮播遇到的问题
小程序官方写法: <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" i ...
- VMware12 克隆虚拟机并且重新分配ip、mac
记录如何快速拷贝一台虚拟机,并且重新分配IP.mac等方便自己做实验: 环境:VMWare12 .Redhat6.8 Step1.克隆虚拟机 虚拟机处于未打开状态,右击管理—>克隆 弹出克隆界 ...
- vs2017调试浏览器闪退
工具>选项>项目和解决方案> Web项目",取消选中"浏览器窗口关闭时停止调试器"
- VS2017 IIS 部署.net core web项目
1.点击IIS,查看模块 查看是否安装了 AspNetCoreModule 模块,如果没有安装可下载:https://dotnet.microsoft.com/download 下载安装后,即可部署项 ...
- 如何给oracle账户解锁
在创建数据库时,已经为SYS等4个账户设定了口令,其中SYS与SYSTEM具有管理员权限,在SQL*Plus工具中使用SYSTEM账户登录Oracle数据库. 1.通过数据字典dba_users,查看 ...
- 诡异的楼梯(bfs)hdu1180
诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submiss ...