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(这段就不注释了)

原文地址:https://www.cnblogs.com/simple-free/p/8448562.html

时间: 2024-10-07 03:21:56

Python+Selenium笔记(八):操作下拉菜单的相关文章

学习笔记:对下拉菜单的简单封装

第一部分  实现效果 当我们点击一下标题按钮时,就弹出一个下拉菜单,点一下其他地方,下拉菜单退出或者从屏幕上消失 效果如下图: 当我们点击一下首页的时候,弹出下拉菜单,效果如下图(当然图片还未做处理) 第二部分  封装思路 当我们点击标题按钮时,会弹出菜单,而且有文字,有图片,那么这个控件应该就是按钮,它既可以响应点击事件,也可以设置图片文字. 那么,这个下拉菜单应该是个什么控件好了,也就是应该继承自那个控件好了?作为其他控件的容器,选UIVIew是最合适的了,选好了容器.接下来就是它的实际需求

Bootstarp学习(八)下拉菜单

下拉菜单(基本用法) 小伙伴们注意,在Bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,它对应的文件: ?  LESS版本:对应的源码文件为 dropdowns.less ?  Sass版本:对应的源码文件为 _dropdowns.scss ?  编译后的Bootstrap版本:查看bootstrap.css文件第3004行-第3130行 在使用Bootstrap框架的下拉菜单时,必须调用Bootstrap框架提供的bootstrap.js文件.当然,如果你使用的是未编译版

java poi excel操作 下拉菜单 及数据有效性

1 private InputStream updateTemplateStyleHSSF(InputStream inputStream,CsCustCon csCustCon) throws IOException, DAOException{ 2 HSSFWorkbook workbook = new HSSFWorkbook(inputStream); 3 HSSFSheet firstSheet= workbook.getSheetAt(0); 4 List<String> strL

吾八哥学Selenium(四):操作下拉框select标签的方法

我们在做web页面自动化测试的时候会经常遇到<select></select>标签的下拉框,那么在Python里如何实现去操作这种控件呢?今天就给大家分享一下这个玩法.为了让大家学习更方便,我准备了一个测试页面. 测试的html页面代码为: <html> <head> <title>学Python网 - Selenium学习测试页面</title> <body> 请选择2018年春节回家的方式! <select id

【菜鸟学习笔记】bootstrap_下拉菜单

<body> <div class="dropdown"> <button class="btn btn-success dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown"> Dropdown <span class="caret"></sp

selenium基础(下拉菜单操作)

selenium基础(下拉菜单操作) 非select/option元素: 1.触发下拉列表出现 2.等待下拉列表中的元素出现,然后进行选择元素即可. select/option元素: 下拉框操作-Select类selenium提供Select类来处理select/option 1.引入 from selenium.webdriver.support.ui import Select 2.创建Select对象,传入元素 ele = driver.find_element_by_xpath(元素定位

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible处理方法:selenium针对下拉菜单事件的处理

使用Selenium爬虫时,可能会遇到一些下拉菜单,动态加载,如果直接使用find_element_by_函数会报错,显示selenium.common.exceptions.ElementNotVisibleException: Message: element not visible. 意思是element是不可见的.所以无法获取到.这时候就遇到一个难题,怎么把element变成可见的呢? 这时候,我们就用ActionChains来模拟效果 ActionChains(driver).clic

selenium操作下拉滚动条的几种方法

数据采集中,经常遇到动态加载的数据,我们经常使用selenium模拟浏览器操作,需要多次下拉刷新页面才能采集到所有的数据,就此总结了几种selenium操作下拉滚动条的几种方法 我这里演示的是Java版本的,使用chromedriver,当然你可以换成python或其他语言,浏览器用firefox或者phantomjs(无头浏览器),大部分都是适用的,不同浏览器有略微的差异. 初始化一个浏览器 首先要允许浏览器运行js脚本 DesiredCapabilities sCaps = new Desi

Bootstrap入门(八)组件2:下拉菜单

先引入本地的CSS文件和JS文件(注:1.bootstrap是需要jQuery支持的.2.需要在<body>当中添加) <link href="css/bootstrap.min.css" rel="stylesheet">  <script src="jquery-3.1.0.min.js" type="text/javascript"></script> <script