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!!!
浙公网安备 33010602011771号