Selenium测试form表单之checkbox和radio
一、定义form表单
用到的元素:checkbox和radiobutton
下图定义了一个选择爱好和选择性别的form表单,区域1用到的表单元素是checkbox(复选框),区域2用到的表单元素是radiobutton

点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="javascript:alert('test')">
swimming:<input type="checkbox" name="swimming" value="swimming"><br>
reading:<input type="checkbox" name="reading" value="reading"><br>
<hr>
gender<br>
<input type="radio" name="gender" value="male" text="male"><label>male</label><br>
<input type="radio" name="gender" value="female" text="female"><label>female</label><br>
<input type="submit" name="login" value="login">
</form>
</body>
</html>
二、测试checkbox
用例1:选中checkbox选项
预期结果1:正常选中
swimming=self.driver.find_element(By.NAME, 'swimming')#定位元素
if not swimming.is_selected():
swimming.click() #选中swimming
reading=self.driver.find_element(By.NAME, 'reading')#定位元素
if not reading.is_selected():
reading.click() #选中reading
sleep(10)

用例2:反选checkbox选项
结果2:不选中选项
swimming.click()
sleep(2)

三、测试radiobutton
用例1:选中男性
结果1:正常选中
ls=self.driver.find_elements(By.NAME, 'gender')
#find_elements()方法返回一个WebElement对象列表
ls[0].click()
sleep(2)

用例2:选中女性
结果2:正常选中
ls=self.driver.find_elements(By.NAME, 'gender')
ls[1].click()
sleep(2)

四、代码
点击查看代码
from selenium import webdriver
from time import sleep
import os
from selenium.webdriver.common.by import By
class TestCase:
def __init__(self):
self.driver = webdriver.Edge()
path = os.path.dirname(os.path.abspath(__file__)) # 获取当前路径的父目录
file_path = 'file:///' + path + '/form1.html' # 获取form表单完整路径
self.driver.get(file_path) # 加载form表单
def test_checkbox(self):
swimming=self.driver.find_element(By.NAME, 'swimming')
if not swimming.is_selected():
swimming.click()# 选中swimming
reading=self.driver.find_element(By.NAME, 'reading')
if not reading.is_selected():
reading.click() # 选中reading
sleep(2)
swimming.click()
sleep(2)
self.driver.quit()
def test_radio(self):
ls=self.driver.find_elements(By.NAME, 'gender')
#ls[0].click()
ls[1].click()
sleep(2)
self.driver.quit()
if __name__=="__main__":
case = TestCase()
#case.test_checkbox()
case.test_radio()
Selenium测试form表单之checkbox和radio的更多相关文章
- 表单:checkbox、radio样式(用图片换掉默认样式)
checkbox.radio样式(用图片换掉默认样式) <!doctype html> <html> <head> <meta charset="u ...
- layui的form表单的checkbox全选与全不选问题
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <m ...
- [原创]java WEB学习笔记62:Struts2学习之路--表单标签:form,表单标签的属性,textfield, password, hidden,submit ,textarea ,checkbox ,list, listKey 和 listValue 属性,select ,optiongroup ,checkboxlist
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Form表单之复选框checkbox操作
input复选(checkbox): <label>input复选1组:</label> <input type="checkbox" name=&q ...
- Checkbox框全选操作,form表单提交与jquery ajax提交两种处理方式
//1.jquery ajax<script type="text/javascript"> $(function(){ var basePath = $(" ...
- qq邮箱问卷,测试不支持form表单
想做个类似苹果调查问卷的: 找到qq邮箱的代码编辑器: 写好我们的网页(h5) <!DOCTYPE html> <html lang="en"> <h ...
- react引用antd的form表单
引用form是第三方插件ant插件,官网网址:https://ant.design/.用到的antd的版本是@2.0.1.form(https://ant.design/components/form ...
- form表单中控件较多,加载完成后切换页面都很慢的解决方法
form表单中控件较多,加载完成后点击都很慢,为什么?我一页面中form表单里面上百个控件(如input.select.radio.checkbox等),还有一些js脚本,加载速度还可以,都能全部显示 ...
- jquery获取form表单内容以及绑定数据到form表单
在日常开发的过程中,难免会用到form表单,我们需要获取表单的数据保存到数据库,或者拿到后台的一串json数据,要将数据绑定到form表单上,这里我写了一个基于jquery的,formHelp插件,使 ...
- Ajax提交form表单内容和文件(jQuery.form.js)
jQuery官网是这样介绍form.js A simple way to AJAX-ify any form on your page; with file upload and progress s ...
随机推荐
- disconf分布式配置管理(二) 与spring集成
上一章介绍了disconf的安装预配置,这章主要介绍下disconf与spring集成 1.添加依赖 <dependency> <groupId>com.baidu.disco ...
- java本地增量打包工具
在打增量包每次都需要将class文件.jsp文件等拷贝到增量包中比较麻烦.所以就写了一个增量打包工具. 工作原理:根据文件的最后修改时间来打增量. 1.查找Java类增量:根据eclipse工程下的. ...
- JAVA——拆分位数
2024/07/09 题目: 解题: import java.util.Scanner; public class Main { public static void main(String[] ar ...
- SQL中解决i+1 & values中插入变量
基于JDBC环境下使用mysql插入数据的一些小问题 下方代码用于实现 批量向数据库中插入数据 一般为"垃圾"数据 代码例子实现i+1的效果 i=1 i+1=2 for (int ...
- nacos 注册服务正常,服务列表内没有服务
解决办法: 在nacos里 创建 注册的 命名空间 , 然后再看服务列表 就会有对应命名空间的数据了
- spark 自定义 accumulator
默认的accumulator 只是最简单的 int/float 有时候我需要一个map来作为accumulator 这样,就可以处理 <string, int>类型的计数了. 此外我还需要 ...
- VS2019 查看源码,使用F12查看源码
前几天在微软社区看到VS的功能演示时,偶然看到此功能,对于开发人员来说太有用了,特此记录分享出来希望可以帮助到家. 具体设置步骤,打开vs2019,在工具>选项>文本编辑器>c#&g ...
- CSS 学习路线图
一.基础入门阶段 学习内容: 理解 CSS 的作用和基本概念,包括样式表如何与 HTML 结合来美化网页. 掌握 CSS 的语法结构,如选择器.属性和值的组合方式. 学习常见的文本样式属性,如字体大小 ...
- 利用 Page Visibility API 优化网页性能与用户体验
在现代 Web 开发中,用户可能会频繁切换标签页,或让网页处于后台运行.为了避免不必要的资源浪费并提升用户体验,合理利用 Page Visibility API 可以在页面不可见时暂停或减少资源的消耗 ...
- ARMv8中non-shareable inner-shareable outer-shareable属性
如果将block的内存属性配置成Non-cacheable,那么数据就不会被缓存到cache,那么所有observer看到的内存是一致的,也就说此时也相当于Outer Shareable. 其实官方文 ...