Python+Selenium笔记:操作下拉菜单

Posted 习惯形成性格,性格决定命运

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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笔记:操作下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

Selenium - Python - 选择 - 下拉菜单链接

selenium基础(下拉菜单操作)

无法使用 Selenium 和 Python 访问下拉菜单

Python selenium 下拉菜单点击

如何使用 Selenium 和 Python 选择下拉菜单项(值或文本)? [复制]

无法从 Selenium 和 Python 的下拉菜单中选择