• Selenium:利用select模块处理下拉框


    Selenium:利用select模块处理下拉框

     

    在利用selenium进行UI自动化测试过程中,经常会遇到下拉框选项,这篇博客,就介绍下如何利用selenium的Select模块来对标准select下拉框进行操作。。。

    首先导入Select模块:

    1 # coding=utf-8
    2 from selenium import webdriver
    3 from selenium.webdriver.support.select import Select

    感兴趣的可以将鼠标指向Select,然后按住Ctrl鼠标单击,查看Select模块的源码,是如何定义封装Select的各个方法的。

    1、Select提供了三种选择某一项的方法

    1 select_by_index          # 通过索引定位
    2 select_by_value          # 通过value值定位
    3 select_by_visible_text   # 通过文本值定位

    注意事项:

    index索引是从“0”开始;

    value是option标签的一个属性值,并不是显示在下拉框中的值;

    visible_text是在option标签中间的值,是显示在下拉框的值;

    2、Select提供了三种返回options信息的方法

    1 options                  # 返回select元素所有的options
    2 all_selected_options     # 返回select元素中所有已选中的选项
    3 first_selected_options   # 返回select元素中选中的第一个选项

    注意事项:

    这三种方法的作用是查看已选中的元素是否是自己希望选择的:

    options:提供所有选项的元素列表;

    all_selected_options:提供所有被选中选项的元素列表;

    first_selected_option:提供第一个被选中的选项元素;

    3、Select提供了四种取消选中项的方法

    1 deselect_all             # 取消全部的已选择项
    2 deselect_by_index        # 取消已选中的索引项
    3 deselect_by_value        # 取消已选中的value值
    4 deselect_by_visible_text # 取消已选中的文本值

    注意事项:

    在日常的web测试中,会经常遇到某些下拉框选项已经被默认选中,这种时候就需要用到这里所说的四种方法;

    下面以实际的代码来做个示例,被测试网页与源码截图如下:

    比如要选择3线,那么三种选择方法示例代码如下:

    复制代码
     1 # coding=utf-8
     2 from selenium import webdriver
     3 from selenium.webdriver.support.select import Select
     4 from time import sleep
     5 
     6 # 登录
     7 driver = webdriver.Chrome()
     8 ......
     9 
    10 # 根据索引选择
    11 Select(driver.find_element_by_name("storeDeclare.cityLine")).select_by_index("3")
    12 # 根据value值选择
    13 Select(driver.find_element_by_name("storeDeclare.cityLine")).select_by_value("3线")
    14 # 根据文本值选择
    15 Select(driver.find_element_by_name("storeDeclare.cityLine")).select_by_visible_text("3线")
    16 sleep(5)
    17 driver.quit()
    复制代码

    以上就是关于selenium的Select模块提供的几种方法的用法,示例代码只是示例,具体实践还需要结合实际的工作需要来进行,后续会介绍关于Xpath以及CSS定位等相关的内容。。。

    转载请注明出处,
    来自(

    老_张

  • 相关阅读:
    关于相对定位与绝对定位
    一些常用但不平凡的CSS属性
    Java-认识变量、注释并能及时发现错误
    了解Java并学会创建Java项目(一个菜鸟的成长历程)
    竞态条件
    web服务器原理
    信号
    静态网页与动态网页区别
    mmap
    HTTP协议
  • 原文地址:https://www.cnblogs.com/rood/p/10998005.html
Copyright © 2020-2023  润新知