首页 > 其他分享 >Selenium19-下拉列表操作

Selenium19-下拉列表操作

时间:2022-12-17 11:22:24浏览次数:38  
标签:选项 Selenium19 text 下拉 driver 列表 select Select

下拉列表

HTML里的下拉列表表示方式,一般来说分为两种情况

  • 传统下拉列表:标准的select标签下拉列表表示方式,下级是optio
  • 组装下拉列表:非select标记,比如li、div、input、img组装而成,界面上显示的效果也是看起来像是下拉列表的样子。

传统下拉列表(标准下拉列表)


两种操作方式,方式一是模拟手工的操作动作(先点击xx,等待,再点击xxx),方式二是使用下拉列表的专用操作类Select

组装下拉列表

下拉列表测试方式

Select类

  • 对于select标记的下拉列表,selenium webdriver提供了专用Select来处理

    # 导入select类
    from selenium.webdriver.support.select import Select
    # 定位下拉列表:html里select标记的页面元素
    变量1 = driver.find_element(By....,...)
    # 封装select对象:调用构造方法,得到该类型的对象实例
    变量2 = Select(变量1) # 变量2数据类型是一个select
    

Select类里的操作方法

Select类里的属性

属性:可以通过Select对象实例直接获得这些属性的值

"""
	打开ECshop前台首页
	选择分类下拉列表里的耳机选项
	输入搜索关键字 5
	点击搜索
	判断第二个排序规则下拉列表里当前选项文本,如果是倒序,就选择文本是正序的选项
	判断第一个排序规则下拉列表里的当前选项文本,如果包含上架时间,就从所有选项中选择一个文本内包含价格的选项
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select

driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/index.php')
a = driver.find_element(By.ID,"category") # 定位分类的下拉列表
b = Select(a)
b.select_by_visible_text('    耳机')# 注意参数必须是完整的选项文本(包含空格)
driver.find_element(By.ID,"keyword").send_keys('5') # 定位关键字文本框输入5
driver.find_element(By.NAME,"imageField").click() # 定位搜索按钮
sleep(3)
# 排序规则里第二个下拉列表
order1 = driver.find_element(By.NAME,'order')
s1 = Select(order1)
# 获得当前选项的文本
t1 = s1.first_selected_option.text
if t1=='倒叙':
    s1.select_by_value("ASC") # 选择升序
# 排序规则第一个下拉列表
sort1 = driver.find_element(By.NAME,'sort')
s2 = Select(sort1)
t2 = s2.all_selected_options.text
if "上架时间" in t2:
    for o in s2.options:#options属性值记录所有选项(由页面元素组成的列表)
        t = o.text # 获得每个选项的文本
        if "价格" in t:
            s2.select_by_visible_text(t) # 选择文本里包含价格的选项
            break
driver.quit()

Select类小结

使用select类之前需要

  • 导入Select类、定位html网页里select标记的元素、封装select对象

Select提供了三种选择方法

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

Select类提供了四种方法取消选择:只适合于有能多选的下拉列表

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

Select提供了三个属性方法

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

标签:选项,Selenium19,text,下拉,driver,列表,select,Select
From: https://www.cnblogs.com/sean-test/p/16988758.html

相关文章

  • Bash Shell获取建行官网最新公告列表(Bash Shell抓取网页小案例)
    BashShell获取建行官网公告列表没啥实质作用,纯粹是因为懒得打开浏览器的情况下想确认建行有无发表新公告,练手一下...,查看具体的公告内容,还得浏览器打开详情页网址,所以,然......
  • vue 实现虚拟列表
    //调用组件<List:arr="dataList"><template#default="{item}">{{item*3}}</template></List>//虚拟列表组件<template><divclass=''><!-......
  • 成员初始化列表
    成员初始化列表的概念在类的构造函数中,通过在构造函数的括号和花括号之间使用冒号和成员变量初始化列表进行初始化,而不是在函数体对成员变量进行初始化。注意:初始化顺序......
  • 企业级自定义表单引擎解决方案(十八)--列表视图属性设置
    表格对于后台管理类的系统来说,至关重要,系统大多数功能都需要以表格的方式展示业务内容,系统开发人员多数时间也是围绕着表格进行业务编码,接触过很多后台管理系统的框架,我个......
  • python利用列表知识,编写购物车小程序
    #readme#该程序的主要是用来模拟购买商品的store=[("iphone",5800),("pad",2000),("dress",500),("shoe",400)]#定义一个商品列表salary=input("输入你的工资")#输入工......
  • asp.net model 校验列表
    [ArgumentIsNullOrWhitespace,Theargument'{0}'cannotbenull,emptyorcontainonlywhitespace.][AssociatedMetadataTypeTypeDescriptor_MetadataTypeContainsU......
  • android listivew 下拉回弹刷新
    该效果是一名国外工程师(johannilsson)的代码,拿来研究了下,自己整合了一下,现在拿出来,跟大家一起分享。再次感谢这位国外工程师(johannilsson),谢谢!新浪微博,和QQ空间里面,都有那......
  • Ripro主题美化-列表页面右上角3个彩色圆点效果实现
    Ripro主题美化-列表页面右上角3个彩色圆点效果实现列表页面右上角有3个彩色圆点效果,模仿友站的!分享给大家~1、找到wp-content/themes/ripro/assets/css/diy.css并将下面的c......
  • 查看svchost的服务列表
    下载ProcessExplorer(Microsoft免费软件)和更多信息:https://technet.microsoft.com/en-gb/sysinternals/bb896653 打开ProcessExplorer并单击菜单栏上的“查看”。......
  • 如何删除数据并刷新列表
    在循环容器中使用数据中心和触发器实现删除某一条数据效果展示前置准备一个消息列表一个消息数据表具体步骤(3)添加一个图标创建消息查询与删除事件创建消息查询与删除触发器......