在web自动化测试时候,经常会遇到复选框选择的问题,那么我们遇到这种情形的时候如何去选择呢。
一般来说,这种业务场景分为二种:
1、 单选一个复选框。
2、 全选复选框
下面用脚本给大家演示一下以上几种场影:
一、单个选择复选框:(选择第二个复选框)
源代码
无
html
css+div
javascript
python
java
linux
sql
这种情况,可以用二种方式解决,第一种是根据name元素直接选择,第二种使用find_elements数组定位。
第一种是根据name元素直接选择:
脚本如下:
from selenium import webdriver
from time import sleep
#打开谷歌浏览器
driver=webdriver.Chrome()
#最大化窗口
driver.maximize_window()
#打开网页
driver.get("D:\\yuanbaotest\\demo\\yuanbaotest.html")
#直接根据name来选择复选框
driver.find_element_by_name("checkbox2").click()
第二种使用find_elements数组定位,这种在表单元素属性只有type=”checkbox”的时候,不要觉得不可能,实际工作发现这样的情况太正常。
from selenium import webdriver
from time import sleep
#打开谷歌浏览器
driver=webdriver.Chrome()
#最大化窗口
driver.maximize_window()
#打开网页
driver.get("D:\\yuanbaotest\\demo\\yuanbaotest.html")
#直接根据name来选择复选框
#driver.find_element_by_name("checkbox2").click()
driver.find_elements_by_xpath("//input[@type='checkbox']").pop(1).click()
python提供pop()方法用于获取列表中的一个元素(默认为最后一个元素),并且返回该元素的值。
二、全选复选框
Python脚本如下:
from selenium import webdriver
#打开谷歌浏览器
driver=webdriver.Chrome()
#最大化窗口
driver.maximize_window()
#打开网页
driver.get("D:\\yuanbaotest\\demo\\yuanbaotest.html")
#获取所有的checkbox表单
checkboxsun=driver.find_elements_by_xpath("//input[@type='checkbox']")
#循环数组
for checkboxs in checkboxsun:
#判断是否是checkbox表单,是就勾选
if checkboxs.get_attribute("type")=="checkbox":
checkboxs.click()
当然,每个项目的表单都不一样,本人在这里只是给大家提供一种思路而已,实际项目中还是根据项目情况做修改。
领取专属 10元无门槛券
私享最新 技术干货