51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2825|回复: 1
打印 上一主题 下一主题

selenium自动化测试入门 下拉框元素定位

[复制链接]
  • TA的每日心情
    无聊
    2024-9-27 10:07
  • 签到天数: 62 天

    连续签到: 1 天

    [LV.6]测试旅长

    跳转到指定楼层
    1#
    发表于 2018-2-7 15:34:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
          选择获取反选下拉框元素首先要实例化select元素
          from selenium.webdriver.support.ui import Select # 引入包

          select_element=Select(element) # 实例化select

          三种常用选择方法

          select_element.select_by_index(index) 根据index定位,从0开始
          select_element.select_by_value(value) 根据value属性定位
          select_element.select_by_visible_text(text) 根据文本定位
          反选的方法

          select_element.deselect_by_index(index) 根据index定位,从0开始
          select_element.deselect_by_value(value) 根据value属性定位
          select_element.deselect_by_visible_text(text) 根据文本定位
          select_element.deselect_all() 取消全部选择
          获取选项的值

          select_element.options 返回这个select元素所有的options
          select_element.all_selected_options 所有被选中的options
          select_element.first_selected_option 第一个被选中的option
          创建select.html 文件,代码如下:
    1. <form>
    2.    <select id="s1Id">
    3.        <option></option>
    4.        <option value="o1" id="id1">o1</option>
    5.        <option value="o2" id="id2">o2</option>
    6.        <option value="o3" id="id3">o3</option>
    7.    </select>
    8.    <br/><br/>
    9.    <select id="s2Id" multiple="multiple" size="6">
    10.        <option></option>
    11.        <option value="o1val">o1</option>
    12.        <option value="o2val">o2</option>
    13.        <option value="o3val">o3</option>
    14.        <option value="o4val">    With spaces</option>
    15.        <option value="o4val">    With nbsp</option>
    16.    </select>
    17. </form>
    复制代码
        示例1:采用三种方法依次选择's1Id'的值
    1. s1 = Select(driver.find_element_by_id('s1Id'))  # 实例化Select,页面第一个下拉框
    2. s1.select_by_index(1)  # 选择第二项选项:o1
    3. s1.select_by_value("o2")  # 选择value="o2"的项
    4. s1.select_by_visible_text("o3")  # 选择text="o3"的值,即在下拉时我们可以看到的文本
    复制代码
        示例2:想查看一个's1Id'所有的选项
    1. s1 = Select(driver.find_element_by_id('s1Id'))
    2. for select in s1.options:
    3.    print(select.text)
    复制代码
        示例3:查看我已选中的所有选项,'s2Id'可以多选的选择框
    1. s4 = Select(driver.find_element_by_id('s2Id'))
    2. s4.select_by_index(1)  # 根据顺序选择第2个
    3. s4.select_by_value("o2val")  # 根据value属性选择o2val
    4. s4.select_by_visible_text("With spaces")  # 根据展示文本选择With spaces
    5. s4.select_by_visible_text(u"    With nbsp") # 注意空格,只有为 是才用空格
    6. for select in s4.all_selected_options:  # 循环获取所有的值
    7.    print(select.text)
    复制代码
        注意:只有只有为 的空格才是空格,在html中代码只有 才代表空格,代码中的空格不是空格。

         示例4:查看选择框的默认值或选中的值
    1. s1 = Select(driver.find_element_by_id('s1Id'))
    2. print(s1.first_selected_option.text)  # 查看选择默认值
    3. s1.select_by_value("o2")
    4. print (s2.first_selected_option.text)  # 查看选中的值
    复制代码
        示例5:取消选择
    1. s4 = Select(driver.find_element_by_id('s2Id'))
    2. s4.select_by_index(1)
    3. s4.select_by_value("o2val")
    4. s4.select_by_visible_text("With spaces")
    5. s4.select_by_visible_text(u"    With nbsp")
    6. s4.deselect_by_index(1)  # 根据值顺序取消选择
    7. s4.deselect_by_value("o2val")  # 根据value属性取消选择
    8. s4.deselect_by_visible_text("With spaces")  # 根据文本取消选择
    9. s4.select_by_value("o2val")
    10. s4.select_by_index(1)
    11. s4.deselect_all()  # 取消全部选择
    复制代码



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 18:52 , Processed in 0.063517 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表