返回顶部
首页 > 资讯 > 后端开发 > Python >Python selenium下拉选择框实战应用例子
  • 632
分享到

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

2024-04-02 19:04:59 632人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、前言二、关于导入方式三、选择、反选、选项的实战应用例子四、总结补充:三种定位方法如下一、前言 selenium的下拉选择框。我们通常会遇到两种下拉框,一种使用的是html的标

一、前言

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下拉选择框内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python selenium下拉选择框实战应用例子

本文链接: https://lsjlt.com/news/119220.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python selenium下拉选择框实战应用例子
    目录一、前言二、关于导入方式三、选择、反选、选项的实战应用例子四、总结补充:三种定位方法如下一、前言 selenium的下拉选择框。我们通常会遇到两种下拉框,一种使用的是html的标...
    99+
    2024-04-02
  • 怎么用python+selenium实现下拉框
    这篇文章主要介绍“怎么用python+selenium实现下拉框”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用python+selenium实现下拉框”文章能帮助大家解决问题。基本脚手架代码:...
    99+
    2023-06-29
  • JavaScript实现下拉列表选择框
    本文实例为大家分享了JavaScript实现下拉列表选择框的具体代码,供大家参考,具体内容如下 创建一个页面 ** 两个下拉选择框     -...
    99+
    2024-04-02
  • 如何使用python实现下拉选择框和页签
    本篇内容主要讲解“如何使用python实现下拉选择框和页签”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用python实现下拉选择框和页签”吧!ttk模块ttk是Python中的一个模块,...
    99+
    2023-07-05
  • jquery实现户籍地选择下拉框
    利用jquery实现户籍地选择下拉框的具体代码,供大家参考,具体内容如下 data.js var data = [{ provname: '浙江省', ...
    99+
    2024-04-02
  • PHP中怎么实现下拉框选择
    这篇文章将为大家详细讲解有关PHP中怎么实现下拉框选择,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。< php  //提交下拉框;  //直接饱触发onc...
    99+
    2023-06-17
  • 使用python实现下拉选择框和页签的方法
    目录前言ttk模块下拉选择框combobox下拉选择框2页签Notebook 前言 python学习之路任重而道远,要想学完说容易也容易,说难也难。很多人说python最好学了,但扪...
    99+
    2023-03-11
    python下拉选择框和页签 python下拉选择框 python页签 python选择框
  • Flutter实现自定义下拉选择框的示例详解
    在一些列表页面中,我们经常会有上方筛选项的的需求,点击出现一个下拉菜单,多选、单选、列表选等,而在Flutter中,并没有现成的这样的组件,找第三方的扩展有时候又会受到一定限制,所以...
    99+
    2024-04-02
  • Vue实现省市区级联下拉选择框
    本文实例为大家分享了Vue实现省市区级联下拉选择框的具体代码,供大家参考,具体内容如下 以(Vue下拉选择框Select组件二)为基础实现省市区级联下拉选择框组件 (业务需...
    99+
    2024-04-02
  • Flutter怎么实现自定义下拉选择框
    这篇“Flutter怎么实现自定义下拉选择框”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Flutter怎么实现自定义下拉选...
    99+
    2023-06-30
  • 使用jquery怎么实现户籍地选择下拉框
    今天就跟大家聊聊有关使用jquery怎么实现户籍地选择下拉框,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。data.jsvar data = [{&nb...
    99+
    2023-06-15
  • 怎么用php实现下拉框选择日期功能
    本文小编为大家详细介绍“怎么用php实现下拉框选择日期功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用php实现下拉框选择日期功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。HTML基础概念首先了解如...
    99+
    2023-07-05
  • 如何利用php实现下拉框选择日期功能
    PHP作为一种服务器端脚本语言,被广泛应用在各种动态网页开发中。在网页开发中,经常需要实现下拉框选择日期的功能,这种功能在日历、时间选择等场景下非常常见。本文将介绍如何利用PHP实现下拉框选择日期。HTML基础概念首先了解如何在HTML中实...
    99+
    2023-05-14
    php
  • Vue下拉选择框Select组件使用详解(一)
    本文实例为大家分享了Vue下拉选择框Select组件的使用方法,供大家参考,具体内容如下 效果图如下:  展开图如下: ①创建组件Select.vue:预设两...
    99+
    2024-04-02
  • Vue下拉选择框Select组件使用详解(二)
    本文实例为大家分享了Vue下拉选择框Select组件的使用方法,供大家参考,具体内容如下 效果图如下: 下拉组件宽度可自定义设置以下属性: ①下拉组件宽度width属性,...
    99+
    2024-04-02
  • Vue如何实现省市区级联下拉选择框
    这篇文章将为大家详细讲解有关Vue如何实现省市区级联下拉选择框,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下以(Vue下拉选择框Select组件二)为基础实现省市区级联下拉选择框组件...
    99+
    2023-06-29
  • elementUI实现下拉选项加多选框的示例代码
    目录下拉加多选框升级—添加全部选项需求改版完善因产品需求和UI样式调整,和element自带的下拉多选有冲突,索性自己尝试修改如下: 下拉加多选框 效果如下图: 封装如下: &...
    99+
    2024-04-02
  • element-plus下拉框实现全选的示例代码
    目录前言下拉框的简单使用全选互斥下拉框多选全选互斥的实现多个下拉框互斥一般全选的实现前言 实习确实能学到不少东西,但是学到的东西果然还是需要沉淀下来,不然后面立马又忘记了。 下拉框的...
    99+
    2024-04-02
  • android用PopWindow做下拉框实例代码
    最近在做下拉框,本来想用spinner,可是spinner达不到项目要求,跟同学同事问了一圈,都在用popwindow,网上看了一下,popwindow挺简单的,可定制性挺强的...
    99+
    2022-06-06
    popwindow 下拉框 Android
  • Vue+elementUI下拉框自定义颜色选择器怎么实现
    这篇“Vue+elementUI下拉框自定义颜色选择器怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue+elem...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作