前言
在测试时,有时会遇到单选框和复选框的操作。操作方式;先定位,再点击;复选框可以先判断再点击。
一、认识单选框和复选框
1.先认清楚单选框和复选框长什么样
2.单选框是圆的;复选框是方的
二、radio和checkbox源码
1.上图的html源码如下,把下面这段复制下来,写到文本里,后缀改成.html就可以了。
单选和复选单选:性别
男
女
近期学习目标
selenium
python
jmeter
三、单选: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()