专栏首页赖权华的笔记Python+Selenium笔记(八):操作下拉菜单

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python网络爬虫笔记(四):使用selenium获取动态加载的内容

    (一)  说明 上一篇只能下载一页的数据,第2、3、4....100页的数据没法获取,在上一篇的基础上修改了下,使用selenium去获取所有页的href属性值...

    free赖权华
  • JS笔记(一):基础知识

    free赖权华
  • JS笔记(三):数组、函数、类

    free赖权华
  • 84 岁 iOS 女程序员,不得不服!

    若宫雅子(Masako Wakamiya)在她 58 岁时拥有了人生中的第一台电脑,那时的她马上要从银行退休。她并不知道,自己即将开启的一段旅程,会让她在 81...

    Java技术栈
  • Unity 随机地图房间通道生成

    https://www.cnblogs.com/koshio0219/p/12604383.html

    汐夜koshio
  • 一篇文章由浅入深了解MSSQL注入丨404安全

    本文主要讲到MSSQL在渗透中的注入绕过,提权思路,站库分离怎么做,其中很多知识其实都是用了很久的了,一方面为了迎合新的版本所以全套都使用的 2008 sql ...

    C4rpeDime
  • 业界 | 除了R、Python,还有这些重要的数据科学工具

    在你向一些大神请教的时候,他可能也会推荐你学习这两个高级编程语言,然后顺便在推荐你了解一下SQL以及Math。如果讲究点的,可能还会传授你一些Spark、AWS...

    CDA数据分析师
  • 业界 | 除了R、Python,还有这些重要的数据科学工具

    在你向一些大神请教的时候,他可能也会推荐你学习这两个高级编程语言,然后顺便在推荐你了解一下SQL以及Math。如果讲究点的,可能还会传授你一些Spark、AWS...

    大数据文摘
  • hackme.inndy.tw的19道web题解(中)

    目录 写在前面 ...... login as admin 0 Login as Admin 0.1 login as admin 1.2 login as a...

    安恒网络空间安全讲武堂
  • 聊聊rocketmq的RemotingCommandException

    本文主要研究一下rocketmq的RemotingCommandException

    codecraft

扫码关注云+社区

领取腾讯云代金券