zoukankan      html  css  js  c++  java
  • 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('')
  • 相关阅读:
    .NET : 单元测试到底给我们带来什么
    .NET : 如何将16进制颜色代码转换为十进制
    LINQ : 谈谈LINQ TO SQL中的直接加载和延迟加载
    .NET : 单元测试的几个Attribute介绍
    .NET : 在单元测试中使用外部文件作为数据源
    再来谈谈json
    .NET : 关于图片格式的问题
    VSTS : 比较性能基准
    .NET : 如何将大文件写入到数据库中
    LINQ : 如何在JOIN或者GROUP BY的时候使用复合键
  • 原文地址:https://www.cnblogs.com/denise1108/p/10537572.html
Copyright © 2011-2022 走看看