• selenium中的下拉框处理模块Select


    在UI自动化测试过程中,经常会遇到一些下拉框,如果我们基于Webdriver操作的话就需要click两次,而且很容易出现问题,实际上Selenium给我们提供了专门的Select(下拉框处理模块)。

    1. 引用路径

    from selenium.webdriver.support.select import Select

    2.select包内的方法详解

    1.获取option元素

    options获取包含select下拉框内所有option项element的列表

    all_selected_options: 获取当前选中项element的列表

    first_selected_option:获取所有下拉选项中的第一个选项的element(或者获取当前选中的这一项)


    2.选择option

    select_by_value(values):选择option标签中value属性为:values的选项

    select_by_index(index_number):选择索引为index_number的选项(索引从0开始)

    select_by_visible_text(text):选择option选项内容为:text的选项


    3.复选select的情况(select标签中,multiple="multiple"时,即可多选的select选择框)

    deselect_all: 取消所有已选择的选项

    deselect_by_value(values):取消选择option标签中value属性为:values的选项

    deselect_by_index(index_number):取消选择索引为index_number的选项(索引从0开始)

    deselect_by_visible_text(text):取消选择option选项内容为:text的选项


    3. 示例

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get('http://ui.imdsx.cn/html/#html')
    driver.maximize_window()  # 最大化网页
    js = 'window.scrollTo(0,1800);'  # 打开网页后,定位到某处
    driver.execute_script(js)
    
    element = driver.find_element_by_xpath('//select[1]')
    from selenium.webdriver.support.select import Select
    
    # 根据value进行操作
    # 如果元素下还有子元素,可以继续通过find进行查找
    
    # 通过选项的value属性值来定位
    Select(element).select_by_value('4')  # ==》四川
    
    # 过select选项的索引来定位选择对应选项(从0开始计数)
    Select(element).select_by_index('2')  # ==》北京
    
    # 通过选项的文本内容来定位
    # ==》黑龙江,当输入不存在的text时,抛异常,提示没定位到这个元素
    Select(element).select_by_visible_text('黑龙江12')
    
    # 获取所有下拉选项中的第一个选项的element(或者获取当前选中的这一项)
    Select(element).first_selected_option  # ==> 辽宁
    
    # 返回所有选中的optionElement对象(获取当前选中项element的列表)
    Select(element).all_selected_options
    
    # 取消所有选中的option
    Select(element).deselect_all()
    
    # 通过option的index来取消对应的option
    Select(element).deselect_by_index('1')
    
    # 通过value属性,来取消对应option
    Select(element).deselect_by_value('2')
    
    # 通过option的文本内容,取消对应的option
    Select(element).deselect_by_visible_text('')
  • 相关阅读:
    打印二叉树和为某一值的路径
    顺时针打印数组
    算术表达式
    堆内存与栈内存详解
    【腾讯校招在线考试附加题】将一个10进制数转换为四位定长的36进制数
    反转链表
    记录github出错及解决方案
    centos7操作防火墙
    无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]解决方法
    MyBatis联表查询——别名方式
  • 原文地址:https://www.cnblogs.com/denise1108/p/10537572.html
Copyright © 2020-2023  润新知