zoukankan      html  css  js  c++  java
  • Selenium3+python3自动化(十六)--单选框和复选框(radiobox、checkbox)

    前言

    在测试时,有时会遇到单选框和复选框的操作。操作方式;先定位,再点击;复选框可以先判断再点击。

    一、认识单选框和复选框

    1.先认清楚单选框和复选框长什么样

     2.单选框是圆的;复选框是方的

    二、radio和checkbox源码

    1.上图的html源码如下,把下面这段复制下来,写到文本里,后缀改成.html就可以了。

    <html>  
        <head>  
        <meta http-equiv="content-type" content="text/html;charset=gbk" />  
        <title>单选和复选</title>  
        </head>  
        <body>  
        
        </form>  
        <h4>单选:性别</h4>   
        <form>  
        <label value="radio">男</label>   
        <input name="sex" value="male" id="boy" type="radio"><br>  
        <label value="radio1">女</label>  
        <input name="sex" value="female" id="girl" type="radio">  
        </form>  
        
        <h4>近期学习目标</h4>  
        <form>  
        <!-- <label for="c1">checkbox1</label> -->  
        <input id="c1" type="checkbox">selenium<br>  
        <!-- <label for="c2">checkbox2</label> -->  
        <input id="c2" type="checkbox">python<br>  
        <!-- <label for="c3">checkbox3</label> -->  
        <input id="c3" type="checkbox">jmeter<br>  
        
        <!-- <form>  
        <input type="radio" name="sex" value="male" /> Male  
        <br />  
        <input type="radio" name="sex" value="female" /> Female  
        </form> -->  
          
        </body>  
        </html> 
    

     三、单选:radio,复选框:checkbox操作,定位方式也是八种元素定位方式

    # coding:utf-8
    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("file:///C:/Users/Administrator/Desktop/1.html")
    driver.implicitly_wait(5)
    driver.find_element_by_id("boy").click() #单选框
    driver.find_element_by_id("c1").click() #复选框
    

     四、复选框全部勾选  

    1.全部勾选,可以用到定位一组元素,从上面源码可以看出,复选框的type=checkbox,这里key用xpath语法

    # coding:utf-8
    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("file:///C:/Users/Administrator/Desktop/1.html")
    driver.implicitly_wait(5)
    c=driver.find_elements_by_xpath("//form/input[@type='checkbox']")
    for i in c:
        i.click()
    

     2.这里注意,find_elements是不能直接点击的,它是复数的,所以只能先获取到所有的checkbox对象,然后通过for循环取一个个点击操作

    五、判断是否选中:is_selected()

    1.有时候这个选项框,本身就是选中状态,如果我再点击以下,它就反选了,这可不是我期望的结果,那么可不可以当它是没选中的时候,我去点击下;当它已经是选中状态,我就不点击呢?那么问题来了,如何判断选项框是选中状态?

    2.判断元素是否选中这一步才是本文的核心内容,点击选项框对于大家来说没什么难度,获取元素是否为选中状态,打印结果

    3.返回结果为bool类型,没点击时候返回False,点击后返回True,接下来就很容易判断了,既可以作为操作前的判断,也可以作为测试结果的判断。

    参考代码:

    # coding:utf-8
    from selenium import webdriver
    import time
    driver=webdriver.Chrome()
    driver.get("file:///C:/Users/Administrator/Desktop/1.html")
    driver.implicitly_wait(5)
    #点击python
    driver.find_element_by_id("c2").click()
    #判断元素是否为选中状态,未选中是False,选中是True
    c1=driver.find_element_by_id("c1").is_selected()
    c2=driver.find_element_by_id("c2").is_selected()
    print(c1,c2)#False True
    time.sleep(3)
    #没有选中,则点击选中
    if not c1:
        driver.find_element_by_id("c1").click()
    if not c2:
        driver.find_element_by_id("c2").click()
    
    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    查询快递单号-宅急送快递接口
    对路由转发的浅显理解
    对SpringCloud Zuul 的基本使用总结
    对SpringCloud Hystrix的使用个人总结
    对SpringBoot开箱即用使用方法的浅显理解
    对SpringCloud Hystrix服务降级的浅显理解
    金玉良言
    2种运行时织入的动态代理模式原理和调用流程比较
    记录手动启动Oracle数据库的方式
    基于SpringBoot搭建一个带数据库访问的WEB项目(记录所需的依赖,配置,驱动安装等注意事项)
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13584825.html
Copyright © 2011-2022 走看看