python+playwright 学习-38.checkbox和radio 相关操作
前言
单选框和复选框相关操作总结
locator.click() 点击操作
locator.check() 选中
locator.uncheck() 不选中
locator.set_checked() 设置选中状态
locator.is_checked() 判断是否被选中
使用场景
radio 和 checkbox 使用场景
<div>
<label>性别:
<input type="radio" name="sex" id="man" checked>男
<input type="radio" name="sex" id="woman">女
</label>
</div>
<div>
<label>标签:
<input type="checkbox" id="a1"> 旅游
<input type="checkbox" id="a2">看书
<input type="checkbox" id="a3" checked >学习
<input type="checkbox" id="a4" >学python
</label>
</div>
radio 单选操作
radio 是单选,如果男已经是选择状态,那么点击它是不会改变状态的,只能点另外一个radio 改变状态。
方法1:click() 点击
# radio 操作
status1 = page.locator('#man').is_checked()
print(status1)
# 选择 女
page.locator('#woman').click()
print(page.locator('#woman').is_checked())
方法2: check()
# 选择 女
page.locator('#woman').check()
print(page.locator('#woman').is_checked())
方法3: set_checked()需传checked 参数,布尔值
# 选择 女
page.locator('#woman').set_checked(checked=True)
print(page.locator('#woman').is_checked())
另外一种写法, 调用page对象相关方法
page.check('#woman')
page.set_checked('#woman', checked=True)
需注意的是,如果男本身就是选择状态,去设置unchecked 状态,会报错: Clicking the checkbox did not change its state
page.locator('#man').uncheck()
报错内容
result = next(iter(done)).result()
playwright._impl._api_types.Error: Clicking the checkbox did not change its state
=========================== logs ===========================
waiting for locator("#man")
checkbox 复选框
checkbox 复选框跟 radio 操作的区别在于,如果已经被选择了,再点击会被取消选中,所以不会有前面的报错。
click 是点击操作,未选中的时候,点击就会被选中。
# checkbox 操作
page.locator('#a1').click()
print(page.locator('#a1').is_checked())
如果想让元素必须是选择状态(不管之前有没被选中),可以使用check() 或 set_checked() 方法
page.locator('#a1').check()
print(page.locator('#a1').is_checked())
set_checked() 方法
# checkbox 操作
page.locator('#a1').set_checked(checked=True)
print(page.locator('#a1').is_checked())
批量选中checkbox
定位全部CheckBox 批量选中
# checkbox 操作
box = page.locator('[type="checkbox"]')
for item in box.all():
item.check()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
2019-03-27 python测试开发django-40.模型(model)中choices使用