本篇主要介绍单选框和复选框的操做html
1、认识单选框和复选框java
1.先认清楚单选框和复选框长什么样python
2.各位小伙伴看清楚哦,上面的单选框是圆的;下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了,能够先抽他了。web
2、radio和checkbox源码浏览器
1.上图的html源码以下,把下面这段复杂下来,写到文本里,后缀改为.html就能够了。微信
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<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">appium<br>
<!-- <form>
<input type="radio" name="sex" value="male" /> Male
<br />
<input type="radio" name="sex" value="female" /> Female
</form> -->
</body>
</html> app
3、单选:radio学习
1.首先是定位选择框的位置测试
2.定位id,点击图标就能够了,代码以下(获取url地址方法:把上面源码粘贴到文本保存为.html后缀后用浏览器打开,在浏览器url地址栏复制出地址就能够了)ui
3.先点击boy后,等十秒再点击girl,观察页面变化
4、复选框:checkbox
1.勾选单个框,好比勾选selenium这个,能够根据它的id=c1直接定位到点击就能够了
2.那么问题来了:若是想所有勾选上呢?
5、所有勾选:
1.所有勾选,能够用到定位一组元素,从上面源码能够看出,复选框的type=checkbox,这里能够用xpath语法:.//*[@type='checkbox']
2.这里注意,敲黑板作笔记了:find_elements是不能直接点击的,它是复数的,因此只能先获取到全部的checkbox对象,而后经过for循环去一个个点击操做
6、判断是否选中:is_selected()
1.有时候这个选项框,自己就是选中状态,若是我再点击一下,它就反选了,这可不是我指望的结果,那么可不能够当它是没选中的时候,我去点击下;当它已是选中状态,我就不点击呢?那么问题来了:如何判断选项框是选中状态?
2.判断元素是否选中这一步才是本文的核心内容,点击选项框对于你们来讲没什么难度。获取元素是否为选中状态,打印结果以下图。
3.返回结果为bool类型,没点击时候返回False,点击后返回True,接下来就很容易判断了,既能够做为操做前的判断,也能够做为测试结果的判断
7、参考代码:
# coding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("file:///C:/Users/Gloria/Desktop/checkbox.html")
# 没点击操做前,判断选项框状态
s = driver.find_element_by_id("boy").is_selected()
print s
driver.find_element_by_id("boy").click()
# 点击后,判断元素是否为选中状态
r = driver.find_element_by_id("boy").is_selected()
print r
# 复选框单选
driver.find_element_by_id("c1").click()
# 复选框全选
checkboxs = driver.find_elements_by_xpath(".//*[@type='checkbox']")
for i in checkboxs:
i.click()
在学习过程当中有遇到疑问的,能够加selenium(python+java) QQ群交流:646645429
《selenium+python高级教程》已出书:selenium webdriver基于Python源码案例
(购买此书送对应PDF版本)