web自动化测试,你所不知道复选框定位的各种技巧,小白必看

在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()

当然,每个项目的表单都不一样,本人在这里只是给大家提供一种思路而已,实际项目中还是根据项目情况做修改。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180722A1HBFP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券