(25)python+playwright自动化处理单选和多选按钮-中

1.简介

上一篇中讲解和介绍的单选框有点多,而且由于时间的关系,决定今天讲解和分享复选框的相关知识。

2.什么是单选框、复选框?

  单选按钮一般叫raido button,就像我们在电子版的单选答题过程一样,单选只能点击一次,如果点击其他的单选,之前单选被选中状态就会变成未选中。单选按钮的点击,一样是使用click方法。多选按钮,就是复选框,一般叫checkbox,就像我们在电子版的多选答题过程一样,可以选择多个选项,多选按钮的点击,同样是使用click方法。简单地说,复选框可以允许你选择多个设置,而单选框则允许你选择一个设置。如下图所示:

 

3.被测页面html源代码

3.1 radio.html

1.准备测试练习radio.html,如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试单选</title><style type="text/css">.button1 {background-color: #f44336; border: none;color: white;padding: 15px 32px;text-align: center;text-decoration: none;display: inline-block;font-size: 28px;margin: 20px 300px 50px 300px;text-decoration:none;color: white;}#myAnchor{text-decoration:none;color: white;}#hg{margin: 20px 300px 50px 300px;}</style>
</head>
<body><button class="button1"><a id="myAnchor" href="https://www.baidu.com">程序员的世界你不懂</a></button></br><div id="hg"><div><h3>复选框 checkbox</h3> 请选择喜欢的打野英雄:<br><label><input name="checkbox1" type="checkbox" value="李白"/>李白 </label><br><label><input name="checkbox2" type="checkbox" value="韩信"/>韩信 </label><br><label><input name="checkbox3" type="checkbox" value="公孙离" checked="checked"/>公孙离 </label><br><label><input name="checkbox4" type="checkbox" value="露娜"/>露娜 </label><br></div><div><h3>单选框 radio</h3> 选择喜欢的打野英雄:<br><label><input name="radio" type="radio" value="0" checked="checked"/>李白 </label><br><label><input name="radio" type="radio" value="1"/>韩信 </label><br><label><input name="radio" type="radio" value="2"/>露娜 </label><br><label><input name="radio" type="radio" value="3"/>孙尚香 </label><br></div></div>
</body>
</html>

2.页面效果,如下图所示:

上图所示的就是我们最常见的radio单选框和checkbox多选框,playwright提供了一些处理单选框以及多选框的方法。

4.PlayWright选择操作

playwright提供了一些处理单选框以及多选框的方法,如下:

locator.click() 点击操作
locator.check() 选中
locator.uncheck() 不选中
locator.set_checked() 设置选中状态
locator.is_checked() 判断是否被选中

5.复选框操作

checkbox 复选框跟 radio 操作的区别在于,如果已经被选择了,再点击会被取消选中,所以不会有前面的报错(在上一篇小结中提到的报错)。以我们的html文件为例,如果李白已经被选中了再点击李白会改变状态变成不选中了,我们只点击其他的按钮不会改变其状态。

5.1click()点击操作

这里演示一下如何点击“韩信”,其实是很简单的,只需要定位到然后点击即可。

5.1.1代码设计

5.1.2参考代码

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)# 选择点击 韩信page.locator('[value="韩信"]').click()page.wait_for_timeout(5000)# page.pause()browser.close()

5.1.3运行代码

1.运行代码,右键Run'Test',查看控制台输出

5.2is_check() 检查操作

5.2.1代码设计

5.2.2参考代码

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)#判断 公孙离 是否被选中(html默认设置是选中的)status1 = page.locator('[value="公孙离"]').is_checked()print(status1)# 选择 露娜page.locator('[value="露娜"]').click()print(page.locator('[value="露娜"]').is_checked())page.wait_for_timeout(5000)# page.pause()browser.close()

5.2.3运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

5.3check()和uncheck()操作

感觉check()和click的用法差不多。

5.3.1代码设计

5.3.2参考代码

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)# 选择孙尚香page.locator('[value="3"]').check()print(page.locator('[value="3"]').is_checked())page.wait_for_timeout(5000)# page.pause()browser.close()

5.3.3运行代码

1.运行代码,右键Run'Test',查看控制台输出

5.4set_checked()操作

注:set_checked()需传checked 参数,参数为布尔值。

5.4.1代码设计

5.4.2参考代码

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)# 选择 韩信page.locator('[value="韩信"]').set_checked(checked=True)print(page.locator('[value="韩信"]').is_checked())page.wait_for_timeout(5000)# page.pause()browser.close()

5.4.3运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

5.5调用page对象

5.5.1用法

page.click('[value="李白"]')
page.check('[value="韩信"]')
page.set_checked('[value="露娜"]', checked=True)

5.5.2代码设计

5.5.3参考代码

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)# 演示,为了看清选中,加了等待page.click('[value="李白"]')page.wait_for_timeout(5000)page.check('[value="韩信"]')page.wait_for_timeout(5000)page.set_checked('[value="露娜"]', checked=True)print(page.locator('[value="露娜"]').is_checked())page.wait_for_timeout(5000)# page.pause()browser.close()

5.5.4.运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

6.小结

 有没有感觉到,单选框和复选框在Playwright中使用差不多,除了前一篇中提到的报错,这一个唯一的区别,其他大致一样。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90042.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx IP授权页面实现步骤

目标&#xff1a;一、创建白名单文件sudo mkdir -p /usr/local/nginx/conf/whitelist sudo touch /usr/local/nginx/conf/whitelist/temporary.conf二、创建Python认证服务文件路径&#xff1a;/opt/script/auth_server.pyimport os import time from flask import Flask, requ…

2025年7月中科院一区-向光生长优化算法Phototropic growth algorithm-附Matlab免费代码

引言 本期介绍一种新的元启发式算法——向光生长优化算法Phototropic growth algorithm&#xff0c;PGA。灵感来自植物细胞在阳光下的生长模式。于2025年7月最新发表在JCR 1区&#xff0c;中科院1区 SCI 期刊 Knowledge-Based Systems。 该算法将生物学启发的确定性生长行为与…

poi-excel-添加水印

1、官网快速指南 https://poi.apache.org/components/spreadsheet/quick-guide.html 访问如上地址可以查看到poi的相关操作方式&#xff1a; How to create a new workbookHow to create a sheetHow to create cellsHow to create date cellsWorking with different types of…

STM32 开发的鼠标:技术详解与实现指南

概述基于STM32微控制器开发的鼠标是一种高度可定化的输入设备解决方案&#xff0c;广泛应用于工业控制、嵌入式系统、特殊人机交互等领域。相比传统鼠标&#xff0c;STM32鼠标具有以下优势&#xff1a;高度可定制性&#xff1a;可添加特殊功能按键、传感器集成低功耗设计&#…

GoLang教程007:打印空心金字塔

4.6 案例一&#xff1a;打印金字塔编写一个程序&#xff0c;可以接收一个整数&#xff0c;表示层数&#xff0c;打印出金字塔。1️⃣第一步&#xff1a;打印一个矩形 package mainimport "fmt"func main() {// i表示层数for i : 1; i < 3; i {// j表示每层打印多少…

iOS开发 Swift 速记3:运算符与控制结构

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

ElasticSearch中需要注意的点,附官方文档解读

1.批量更新数量大小限制 https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html#_How_Big_Is_Too_Big 整个批量请求都需要由接收到请求的节点加载到内存中&#xff0c;因此该请求越大&#xff0c;其他请求所能获得的内存就越少。批量请求的大小有一个最佳值…

Git GitHub精通:前端协作开发的“瑞士军刀“!

前言&#xff1a;为什么你的代码总是"失踪"&#xff1f; "啊&#xff01;我的代码呢&#xff1f;"——这可能是每个程序员都曾发出过的灵魂呐喊。还记得上周我熬夜写的300行JavaScript&#xff0c;第二天醒来发现被自己手贱覆盖了&#xff0c;那一刻我深刻…

第 30 场 蓝桥·算法入门赛 题解

1. 零食争议【算法赛】 签到题&#xff1a;1-7奇数相加 #include <bits/stdc.h> using namespace std; int main() {// 请在此输入您的代码cout<<1357;return 0; } 2. 数字炸弹【算法赛】 把n个人看为前n-1和后n-1 &#xff0c; 方便找到是第几段的第几个数 #in…

闲庭信步使用图像验证平台加速FPGA的开发:第二十四课——图像直方图均衡化的FPGA实现

&#xff08;本系列只需要modelsim即可完成数字图像的处理&#xff0c;每个工程都搭建了全自动化的仿真环境&#xff0c;只需要双击top_tb.bat文件就可以完成整个的仿真&#xff0c;大大降低了初学者的门槛&#xff01;&#xff01;&#xff01;&#xff01;如需要该系列的工程…

LabVIEW 2025安装包| 免费免激活版下载| 附图文详细安装教程

[软件名称]&#xff1a;LabVIEW 2025 [软件大小]&#xff1a;13 G [系统要求]&#xff1a;支持Win7及更高版本 [下载通道]:夸克网盘 [下载链接]: https://pan.quark.cn/s/7e9527cc06a3 &#xff08;建议用手机保存到网盘后&#xff0c;再用电脑下载&#xff09; 更多免费软件&a…

如何实现泵站的无人值守:御控智慧水务平台

在城乡供水、农田灌溉、工业循环水等场景中&#xff0c;泵站作为核心动力设施&#xff0c;其运行效率直接影响水资源调配的稳定性。然而&#xff0c;传统泵站管理长期面临三大痛点&#xff1a;人力成本高昂&#xff1a;偏远地区泵站需24小时值守&#xff0c;单站年均人力成本超…

深度学习篇---车道线循迹

要实现基于深度学习的双车道线&#xff08;黄色车道线&#xff09;循迹&#xff08;通过预测四个轮子的转速实现自主控制&#xff09;&#xff0c;需要从数据采集、模型设计、训练策略、环境适应等多维度系统优化。以下是具体方案及需要注意的关键事项&#xff0c;旨在提升精准…

JavaScript,发生异常,try...catch...finally处理,继续向上层调用者传递异常信息

JavaScript中&#xff0c;‌异常&#xff08;Exception&#xff09;和错误&#xff08;Error&#xff09; JavaScript 是一种解释型语言&#xff0c;通常在浏览器中通过JavaScript引擎执行。最著名的两个引擎是&#xff1a;SpiderMonkey&#xff08;由 Mozilla Firefox 使用&a…

SpringMVC快速入门之启动配置流程

SpringMVC快速入门之启动配置流程一、SpringMVC启动的核心流程二、环境准备与依赖配置2.1 开发环境2.2 Maven依赖配置三、初始化Servlet容器&#xff1a;WebApplicationInitializer3.1 实现WebApplicationInitializer3.2 配置编码过滤器&#xff08;解决中文乱码&#xff09;四…

ArcGIS水文及空间分析与SWMM融合协同在城市排水防涝领域中的应用

随着计算机的广泛应用和各类模型软件的发展&#xff0c;将排水系统模型作为城市洪灾评价与防治的技术手段已经成为防洪防灾的重要技术途径。将创新性融合地理信息系统&#xff08;GIS&#xff09;的空间分析能力与暴雨雨水管理模型&#xff08;SWMM&#xff09;的水动力计算优势…

PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC

PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC 文章目录PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC前言1. 确保固件版本为2.192. 刷系统到U盘3. 启动U盘系统4. U盘系统写入EMMC5. 关机拨U盘6. 重新上电环境&#xff1a; 系统&#xff1a;Armbi…

《计算机网络基础知识全解析:从协议模型到通信实践》

《计算机网络基础知识全解析&#xff1a;从协议模型到通信实践》 在数字化时代&#xff0c;计算机网络是信息传递的基石&#xff0c;从日常浏览网页到企业数据交互&#xff0c;都离不开网络协议的规范与支撑。本文将系统梳理计算机网络的核心知识&#xff0c;从通信模型到具体协…

【补题】Codeforces Global Round 26 E. Shuffle

题意&#xff1a;给出一棵树&#xff0c;按照以下方式操作 对于当前的所有任意子树&#xff0c;选出任何一个点从中删除&#xff0c;然后作为新子树的根插入到新的树中&#xff0c;以此递归往复&#xff0c;直到原来的树中节点全部进入新树&#xff0c;问新树最多有多少个叶子节…

金仓数据库风云

O 记我用了这么多年&#xff0c;我最有发言权&#xff0c;我可不敢替&#xff0c;你们谁能搞定&#xff0c;谁上。” 老邓在会上&#xff0c;狠狠甩了一句气话。老邓&#xff08;邓铭&#xff09;&#xff0c;某大型期货交易所信息化主管&#xff0c;数据库老司机。 作为圈里最…