美文网首页
『心善渊』Selenium3.0基础 — 18.单选按钮和多选按

『心善渊』Selenium3.0基础 — 18.单选按钮和多选按

作者: 繁华似锦Fighting | 来源:发表于2020-08-28 00:08 被阅读0次

    1、页面中的单选按钮和多选按钮

    页面中的单选按钮和多选按钮样式如下图:


    页面代码片段:

    <!DOCTYPE html>
    <html lang="zh-cn">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
    <fieldset>
    <legend>单选按钮radio</legend>
    <form action="">
        <label for=""><input type="radio" name="fruit" value="pg" id="pg">苹果</label>
        <label for=""><input type="radio" name="fruit" value="jz" id="jz">橘子</label>
        <label for=""><input type="radio" name="fruit" value="xj" id="xj">香蕉</label>
        <label for=""><input type="radio" name="fruit" value="li" id="li" checked="">梨</label>
        <label for=""><input type="radio" name="fruit" value="xg" id="xg" disabled="" >西瓜</label>
    </form>
    </fieldset>
    <br>
    <fieldset>
    <legend>多选按钮checkbox</legend>
    <form action="">
        <input type="checkbox" name="checkbox" value="汽车" id="qc">汽车<br>
        <input type="checkbox" name="checkbox" value="购物" id="gw">购物<br>
        <input type="checkbox" name="checkbox" value="旅游" id="ly" readonly="">旅游 <br>
        <input type="checkbox" name="checkbox" value="音乐" id="yy" disabled="">音乐 <br>
    </form>
    </fieldset>
    </body>
    </html>
    

    说明:

    • 单选按钮,默认选框为圆形,type属性值为type="radio"
    • 多选按钮,默认选框为方形,type属性值为type="checkbox"
    • 使用click()方法切换选框的状态:开/关(选中状态 or 未选中状态)。

    2、判断按钮是否选中is_selected()

    有时候选项框,本身就是选中状态,如果我再点击一下,它就取消选择了,这可不是我期望的结果,那么可不可以当它是没选中的时候,我去点击下,当它已经是选中状态,我就不点击。

    如何判断选项框是选中状态?

    我们可以通过is_selected()方法进行判断。

    语法:

    # 返回一个布尔值
    元素对象.is_selected()
    

    说明:

    返回结果为bool类型,没点击时候返回False,点击后返回True,以后我们在操作单选按钮和多选按钮的时候,先判断按钮是否是选中状态,再根据业务需求进行操作。

    3、单选按钮的操作

    以上边页面代码片段为例:

    示例:

    """
    1.学习目标:
        掌握单选框操作
    2.语法
        1.定位单选框,进行点击操作
            再进行一下点击操作,就是取消选择
        2.在点击之前,需要判断单选框是否被选中
            元素.is_selected()  # 判断元素是否被选中
    3.需求
        在页面中,操作单选框
    """
    # 1.导入selenium
    from selenium import webdriver
    from time import sleep
    import os
    
    # 2.打开浏览器
    driver = webdriver.Chrome()
    
    # 3.打开页面
    url = "file:///" + os.path.abspath("./1.html")
    driver.get(url)
    sleep(2)
    
    # 4.单选框操作
    # 4.1 定位单选框
    # 定位选项前的按钮元素,不要定位文字
    apple = driver.find_element_by_id("pg")
    
    # 4.2 操作单选框
    # 判断单选框是否被选中
    if apple.is_selected():
        pass
    else:
        # 单击一下,让单选按钮进入选中状态
        apple.click()
        sleep(2)
    
    """
    注意:
    被禁用的按钮是不能被操作的,
    也就是按钮属性中有disabled=""。
    单选按钮和多选按钮都是。
    """
    
    # 5. 操作一组单选框
    # 5.1定位所有的单选框
    radios = driver.find_elements_by_css_selector("input[type='radio']")
    
    # 5.2 遍历操作所有的单选框
    for radio in radios:
        if radio.is_selected():
            pass
        else:
            radio.click()
            sleep(1)
    
    # 5.关闭浏览器
    driver.quit()
    

    4、多选按钮的操作

    实现步骤:

    1. 全部勾选,可以用到定位一组元素,通过复选框的type=checkbox等属性定位即可。
    2. find_elements是不能直接点击,它是复数获取的元素集,是一个列表,所以只能先获取到所有的checkbox对象,然后通过for循环去一个个点击操作。

    以上边页面代码片段为例:

    示例:

    """
    1.学习目标:
        掌握复选框操作
    2.语法
        2.1 定位复选框
        2.2 操作复选框
                判断复选框是否被选中
                元素.is_selected()
                再进行选择
    3.需求
        在页面中,操作多选框
    """
    # 1.导入selenium
    from selenium import webdriver
    from time import sleep
    import os
    
    # 2.打开浏览器
    driver = webdriver.Chrome()
    
    # 3.打开页面
    url = "file:///" + os.path.abspath("./1.html")
    driver.get(url)
    sleep(2)
    
    # 4. 复选框操作
    # 操作单个复选框和操作单个单选框一样
    car = driver.find_element_by_id("qc")
    # 判断选框是否被选中
    if car.is_selected():
        pass
    else:
        # 单击一下,让单选按钮进入选中状态
        car.click()
        sleep(2)
    
    # 5. 复选框全选
    # 5.1 定位所有的复选框
    checkboxes = driver.find_elements_by_name("checkbox")
    
    # 5.2 遍历所有复选框,并且选择
    for checkbox in checkboxes:
        if checkbox.is_selected():
            pass
        else:
            checkbox.click()
            sleep(1)
    
    """
    注意:
    被禁用的按钮是不能被操作的,
    也就是按钮属性中有disabled=""。
    单选按钮和多选按钮都是。
    """
    
    # 5.关闭浏览器
    driver.quit()
    

    5、选择部分多选按钮的操作

    写一种简单好理解的方式:

    # 1.导入selenium
    from selenium import webdriver
    from time import sleep
    import os
    
    # 2.打开浏览器
    driver = webdriver.Chrome()
    
    # 3.打开页面
    url = "file:///" + os.path.abspath("./1.html")
    driver.get(url)
    sleep(2)
    
    # 4. 选择部分多选框
    # 建立列表填写将要选择的复选框名称
    box_list = ["购物", "旅游"]
    
    # 定位所有的复选框
    checkboxes = driver.find_elements_by_name("checkbox")
    
    # 遍历选择
    for checkbox in checkboxes:
        # 判断获取到的复选框的名称和在需求勾选的复选框中
        if checkbox.get_attribute("value") in box_list:
            # 如果在,判断选框是否被选中
            if checkbox.is_selected():
                pass
            else:
                # 单击一下,让单选按钮进入选中状态
                checkbox.click()
                sleep(1)
    
    """
    注意:
    被禁用的按钮是不能被操作的,
    也就是按钮属性中有disabled=""。
    单选按钮和多选按钮都是。
    """
    
    # 5.关闭浏览器
    driver.quit()
    

    相关文章

      网友评论

          本文标题:『心善渊』Selenium3.0基础 — 18.单选按钮和多选按

          本文链接:https://www.haomeiwen.com/subject/kftqsktx.html