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('')
  • 相关阅读:
    设计模式-创建型-原型模式
    设计模式-创建型-抽象工厂模式
    设计模式-创建型-工厂模式
    设计模式-创建型-单例模式
    css3技巧属性之text-overflow
    bootstrap如何自定义5等分
    LeetCode-64-最小路径和
    LeetCode-62-不同路径
    LeetCode-5-最长回文子串
    LeetCode-98-验证二叉搜索树
  • 原文地址:https://www.cnblogs.com/denise1108/p/10537572.html
Copyright © 2011-2022 走看看