我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python selenium下拉选择框实战应用例子

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python selenium下拉选择框实战应用例子

一、前言

selenium的下拉选择框。我们通常会遇到两种下拉框,一种使用的是html的标签select,另一种是使用input标签做的假下拉框。

后者我们通常的处理方式与其他的元素类似,点击或使用JS等。而对于前者,selenium给了有力的支持,就是Select类。

进行测试的网站:http://sahitest.com/demo/selectTest.htm

网页及对应源码:

二、关于导入方式

两种导入方式:

from selenium.webdriver.support.ui import Select
# 或者直接从select导入
from selenium.webdriver.support.select import Select

三、选择、反选、选项的实战应用例子

话不多说,直接上代码:

# -*- coding: utf-8 -*-
 
"""
@author: lucas
@Function:
@file: selectStudy.py
@time: 2021/8/20 1:27 下午
"""
import unittest
import time
 
from selenium import webdriver
from selenium.webdriver.support.ui import Select
 
 
class SelectStudy(unittest.TestCase):
 
    def setUp(self):
        # 创建一个Chrome WebDriver的实例
        self.driver = webdriver.Chrome()
 
    # 选择页面第一个下拉框,依次选择值O1-O3
    def test_selectO1ToO3(self):
        driver = self.driver
        driver.get('http://sahitest.com/demo/selectTest.htm')
        # 实例化Select
        s1 = Select(driver.find_element_by_id('s1Id'))
        # 查看选择框的默认值
        print s1.first_selected_option.text
        # 选择第二个选项o1
        s1.select_by_index(1)
        time.sleep(3)
        # 为了方便查看效果,可以加上等待时间
        time.sleep(3)
        # 选择value="o2"的项,value是option标签的一个属性值,并不是显示在下拉框中的值
        s1.select_by_value("o2")
        # 查看选中选择框的默认值
        print s1.first_selected_option.text
        time.sleep(3)
        # 选择text="o3"的值,即在下拉时我们可以看到的文本,visible_text是在option标签中间的值,是显示在下拉框的值
        s1.select_by_visible_text("o3")
        time.sleep(3)
 
    # 反选操作,包括取消某个值和全部取消
    def test_cancel_select(self):
        driver = self.driver
        driver.get('http://sahitest.com/demo/selectTest.htm')
        s4 = Select(driver.find_element_by_id('s4Id'))
        # 全选
        for option in s4.options:
            if not option.is_selected():
                print option.text
                s4.select_by_visible_text(option.text)
        time.sleep(3)
 
        # 根据index取消选中
        s4.deselect_by_index(0)
        time.sleep(3)
 
        # 根据value取消选中
        s4.deselect_by_value("o1val")
        time.sleep(5)
 
        # 根据标签文本选中
        s4.deselect_by_visible_text("o2")
        time.sleep(5)
 
        # 全选
        for option in s4.options:
            if not option.is_selected():
                s4.select_by_visible_text(option.text)
        time.sleep(3)
 
        # 取消选中所有选项
        s4.deselect_all()
 
    # 查看选中项目
    """
    输出结果为:
    o1
    o2
      With spaces
      With nbsp
    """
    def test_view_selection(self):
        driver = self.driver
        driver.get('http://sahitest.com/demo/selectTest.htm')
        s4 = Select(driver.find_element_by_id('s4Id'))
        # 查看选择框的默认值
        s4.select_by_index(1)
        s4.select_by_value("o2val")
        s4.select_by_visible_text("With spaces")
        s4.select_by_value("o4val")
 
        for select in s4.all_selected_options:
            print select.text
 
    def tearDown(self):
        self.driver.close()
 
 
if __name__ == "__main__":
    unittest.main()

注意:

反选(deselect)取消操作只适用于添加了multiple的下拉框,否则会报错

    raise NotImplementedError("You may only deselect options of a multi-select")

NotImplementedError: You may only deselect options of a multi-select

四、总结

1、Select提供了三种选择方法:

select_by_index(index) ——通过选项的顺序,第一个为 0
select_by_value(value) ——通过value属性
select_by_visible_text(text) ——通过选项可见文本

 2、Select提供了四种方法取消选择:

deselect_by_index(index)
deselect_by_value(value)
deselect_by_visible_text(text)
deselect_all()

3、Select提供了三个属性方法给我们必要的信息:

options ——提供所有的选项的列表,其中都是选项的WebElement元素
all_selected_options ——提供所有被选中的选项的列表,其中也均为选项的WebElement元素
first_selected_option ——提供第一个被选中的选项,也是下拉框的默认值

补充:三种定位方法如下

1.select_by_visible_text():选项的文本内容

from selenium.webdriver.support.select import Select
from time import sleep
from selenium import webdriver

dr=webdriver.Chrome()
dr.get('url')
dr.maximize_window()
#先定位到下拉框,通过text文本定位
Select(find_element_by_id('q')).select_by_visible_text('苍井空')
sleep(2)
dr.quit()

2.select_by_value():value属性定位

from selenium.webdriver.support.select import Select
from time import sleep
from selenium import webdriver

dr=webdriver.Chrome()
dr.get('url')
dr.maximize_window()
#先定位到下拉框,通过value属性定位
Select(find_element_by_id('q')).select_by_value('3')
sleep(2)
dr.quit()

3.select_by_index():索引定位(0开始)

from selenium.webdriver.support.select import Select
from time import sleep
from selenium import webdriver

dr=webdriver.Chrome()
dr.get('url')
dr.maximize_window()
#先定位到下拉框,通过索引定位
Select(find_element_by_id('q')).select_by_index('1')
sleep(2)
dr.quit()

到此这篇关于Python selenium下拉选择框的文章就介绍到这了,更多相关Python selenium下拉选择框内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python selenium下拉选择框实战应用例子

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么用python+selenium实现下拉框

这篇文章主要介绍“怎么用python+selenium实现下拉框”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用python+selenium实现下拉框”文章能帮助大家解决问题。基本脚手架代码:
2023-06-29

如何使用python实现下拉选择框和页签

本篇内容主要讲解“如何使用python实现下拉选择框和页签”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用python实现下拉选择框和页签”吧!ttk模块ttk是Python中的一个模块,
2023-07-05

使用python实现下拉选择框和页签的方法

ttk是Python中的一个模块,它提供了一组用于创建GUI界面的工具和控件,这些控件包括按钮、标签、文本框等,可以帮助开发者更方便地创建用户界面,这篇文章主要介绍了使用python实现下拉选择框和页签的方法,需要的朋友可以参考下
2023-03-11

使用jquery怎么实现户籍地选择下拉框

今天就跟大家聊聊有关使用jquery怎么实现户籍地选择下拉框,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。data.jsvar data = [{ provname:
2023-06-15

怎么用php实现下拉框选择日期功能

本文小编为大家详细介绍“怎么用php实现下拉框选择日期功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用php实现下拉框选择日期功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。HTML基础概念首先了解如
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录