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 ...
随机推荐
- C++程序员面试题目总结(涉及C++基础、多线程多进程、网络编程、数据结构与算法)
说明:C++程序员面试题目总结(涉及C++基础知识.多线程多进程.TCP/IP网络编程.Linux操作.数据结构与算法) 内容来自作者看过的帖子或者看过的文章,个人整理自互联网,如有侵权,请联系作者 ...
- 【Canal源码分析】配置项
本文讲解canal中的一些配置含义. 一.配置加载图 二.配置文件canal.properties 2.1 common参数定义 比如可以将instance.properties的公用参数,抽取放置到 ...
- SpringSecurity学习之快速上手
互联网项目中,安全与权限控制是不可回避的问题,为了解决这一些列问题,许多安全框架应运而生了.这些框架旨在帮我们解决公用的安全问题,让我们的程序更加健壮,从而让程序员全身心投入到业务开发当中.那么Spr ...
- 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装用来定时任务apscheduler库(图文详解)
不多说,直接上干货! Anaconda2 里 PS C:\Anaconda2\Scripts> PS C:\Anaconda2\Scripts> pip.exe install apsc ...
- C++学习知识点
所谓的学习,知识只是一部分,理解知识是如何被抽象和提炼的过程,才是更重要的 1.c++代码里面的\(反斜杠) C语言的宏要求只能在同一行,是不能跨行的.这里的反斜杠就是告诉编译器,我这里虽然换行了,但 ...
- JavaScript -- Screen
-----041-Screen.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=" ...
- linux less命令详情
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more .tail更加的有弹性.在 more 的时候,我们并没有办 ...
- niftynet Demo分析 -- brain_parcellation
brain_parcellation 论文详细介绍 通过从脑部MR图像中分割155个神经结构来验证该网络学习3D表示的效率 目标:设计一个高分辨率和紧凑的网络架构来分割体积图像中的精细结构 特点:大多 ...
- 分布式理论(七)—— 一致性协议之 ZAB
前言 在前面的文章中,我们说了很多一致性协议,比如 Paxos,Raft,2PC,3PC等等,今天我们再讲一种协议,ZAB 协议,该协议应该是所有一致性协议中生产环境中应用最多的了.为什么呢?因为他是 ...
- Docker基础-镜像操作
1.搜寻镜像 docker search [TERM] 可以搜索远程仓库中共享的镜像,默认搜索官方仓库的镜像. docker search参数: --automated=true|false :仅显示 ...