zoukankan      html  css  js  c++  java
  • Selenium—选择框的相关操作(单选框、多选框、复选框、下拉框)

    编辑框

    • 无缺省值:第二个输入框

      • 可直接对输入框进行编辑:
        • driver.find_element_by_id('input2').send_keys('selenium')

    • 有缺省值:第一个输入框,默认 test

      • 此时,如果我们直接对第一个输入框进行编辑,会发现与预期结果不符
        • driver.find_element_by_id('input1').send_keys('selenium')

      • 因此,如果需要对存在默认值的输入框进行编辑,则需先进行清除操作,然后再进行编辑

        • driver.find_element_by_id('input1').clear()
        • driver.find_element_by_id('input1').send_keys('selenium')

     

    单选框

     

    • 单选框,一般会默认选中其中一个

    • 点选时,有且只能选中一个,所以再进行操作时,无需判断是否存在默认值

    • 示例:选择女性

      • driver.find_element_by_css_selector('input[value="female"]').click()

     

    多选框(勾选框)

    • 如果选中某一项,点击该项,会取消选中

    • 如果该项未被选中,点击该项,会被选中

    • 示例:两项均选中

      • 先查看元素

      • 我们会发现默认选中的,会存在一个 checked 的属性

      • 因此我们可以想到一个思路

        • 将默认选中的点选,即取消选中
          • driver.find_element_by_xpath('//*[@name="course"][@checked]').click()
        • 然后勾选我们想要的元素

          • driver.find_element_by_css_selector('input[value=python]').click()
          • driver.find_element_by_css_selector('input[value=selenium]').click()

     

    复选框

     

    • 点击某项,即可选中某一项,不会多选

    • 已选中的再次点击该项,不会取消选中

    • 按住 键盘 CTRL 键 ,可实现多选

    • 若实现对复选框的操作,需要导入 Select类:from selenium.webdriver.support.ui import Select

    • 复选框内的元素选择有 3 种
      1. select.select_by_visible_text()
      2. select.select_by_value()
      3. select.select_by_index()
    • 示例:选中 玛莎拉蒂 、兰博基尼 和 法拉利

    from selenium import webdriver
    # 导入 Select
    from selenium.webdriver.support.ui import Select
    
    driver = webdriver.Chrome()
    
    # 打开网址;地址需要修改
    driver.get('file:///C:/Users/wss/Desktop/test.html')
    
    
    # 获得相应的WebElement
    select = Select(driver.find_element_by_id("select"))
    
    # 先取消选择所有的选项
    select.deselect_all()
    
    
    # 通过文本选中 玛莎拉蒂
    select.select_by_visible_text("玛莎拉蒂")
    
    # 通过 value 值选中 兰博基尼
    select.select_by_value("Lamborghini")
    
    # 通过 index 选择元素,索引从0开始
    select.select_by_index(2)
    
    driver.quit()

     

    下拉框

    • 下拉框与复选框一致,均需要导入Select类:from selenium.webdriver.support.ui import Select

    • 下拉框为单选,不需要清除默认

    • 示例:选择 男

      1. select = Select(driver.find_element_by_id("selectdemo"))
      2. select.select_by_visible_text("男")

     

     

    HTML Demo源码

     

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>定位网页元素练习</title>
    
    </head>
    
    <body>
    
        <p>输入框测试</p>
        <div style="color:#0000FF">
            <input id="input1" value="test">
            <br><br>
            <textarea id="input2"></textarea>
        </div>
    
        <hr>
    
        <p>单选框测试</p>
        <div>
            <input type="radio" name="gender" value="male" checked="checked"><br>
            <input type="radio" name="gender" value="female"><br>
        </div>
    
        <hr>
    
        <p>多选框测试</p>
        <div>
            <input type="checkbox" name="course" value="python" >
            Python基础
            <br>
            <input type="checkbox" name="course" value="selenium" checked>
            Selenium自动化
        </div>
    
        <hr>
    
        <p>复选框测试</p>
        <select id="select" multiple>
            <option value="Maserati">玛莎拉蒂</option>
            <option value="Lamborghini">兰博基尼</option>
            <option value="Ferrari" selected="selected">法拉利</option>
            <option value="Porsche">保时捷</option>
        </select>
    
        <hr>
    
        <p>下拉框测试</p>
        <select  id="selectdemo">
            <option value="male"></option>
            <option value="female" selected="selected"></option>
        </select>
    
    </body>
    </html>

     

  • 相关阅读:
    java反射机制
    Java注解的使用
    C3P0数据库Jar包的使用
    异常处理
    集合的概念
    程序员必备之二分查找
    ArrayList的使用
    HashMap的使用
    Final的使用
    类的基本结构
  • 原文地址:https://www.cnblogs.com/wilson-5133/p/10940341.html
Copyright © 2011-2022 走看看