当前位置: 首页 > news >正文

《最新出炉》系列初窥篇-Python+Playwright自动化测试-26-处理单选和多选按钮-下篇

1.简介

今天这一篇宏哥主要是讲解一下,如何使用Playwright来遍历单选和多选按钮。大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的单选和多选按钮进行实战。

2.demo准备

2.1demo页面的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.cnblogs.com/du-hong/">北京-宏哥</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.页面效果,如下图所示:

3.遍历单选框

遍历思路:

1.首先找到所有单选按钮的共同点。

2.使用共同点来定位单选按钮,将其放在变量中。

3.利用for循环将其从容其中一一遍历出来。

3.1代码设计

根据上边的遍历思路进行代码设计。如下图所示:

3.2参考代码
# coding=utf-8🔥# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-09-27
@author: 北京-宏哥   QQ交流群:705269076
公众号:北京宏哥
Project: 《最新出炉》系列初窥篇-Python+Playwright自动化测试-23-处理单选和多选按钮-下篇
'''# 3.导入模块
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)# 遍历没有选中的单选框(如果想遍历所有的单选框去掉if条件即可)for radio in page.locator('[name="radio"]').all():if(not(radio.is_checked())):radio.click()page.wait_for_timeout(2000)# page.pause()browser.close()
3.3运行代码

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

2.运行代码后电脑端的浏览器的动作(因为李白默认选中,所以没有遍历,从韩信开始遍历)。如下图所示:

4.遍历复选框

遍历思路:

1.首先找到所有复选按钮的共同点。

2.使用共同点来定位复选按钮,将其放在变量中。

3.利用for循环将其从容其中一一遍历出来。

4.1代码设计

根据上边的遍历思路进行代码设计。如下图所示:

4.2参考代码
# coding=utf-8🔥# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-09-27
@author: 北京-宏哥   QQ交流群:705269076
公众号:北京宏哥
Project: 《最新出炉》系列初窥篇-Python+Playwright自动化测试-23-处理单选和多选按钮-下篇
'''# 3.导入模块
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)# 遍历没有选中的单选框(如果想遍历所有的单选框去掉if条件即可)for radio in page.locator('[type="checkbox"]').all():if(not(radio.is_checked())):radio.click()page.wait_for_timeout(2000)# page.pause()browser.close()
4.3运行代码

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

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

5.JQueryUI网站

jQuery插件库-收集最全最新最好的jQuery插件  这个是宏哥又找到的一个网站,不错的,有源码。进入后可以搜索你要演示的demo。

5.1被测网址

1.被测网址的地址:

为了方便演示,宏哥直接将其iframe中的url拿出来了,否则你的定位到iframe,然后才能定位里边的元素。这个坑宏哥之前遇到过一次。这里再次提醒一下。

 input

2.网页如下图:

5.2代码设计

宏哥这里只演示单选的遍历,复选的有兴趣的童鞋可以自己试一下。根据demo中的遍历思路进行代码设计。如下图所示:

5.3参考代码
# coding=utf-8🔥# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-11-07
@author: 北京-宏哥   QQ交流群:705269076
公众号:北京宏哥
Project: 《最新出炉》系列初窥篇-Python+Playwright自动化测试-26-处理单选和多选按钮-下篇
'''# 3.导入模块
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("https://www.jq22.com/demo/inputStyle201703310052")page.wait_for_timeout(3000)# 遍历没有选中的单选框(如果想遍历所有的单选框去掉if条件即可)for radio in page.locator('[name="hot"]').all():if(not(radio.is_checked())):radio.click()page.wait_for_timeout(2000)# page.pause()browser.close()
5.4运行代码

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

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

6.小结

今天主要是讲解了如何遍历单选和多选按钮,掌握了其实非常简单主要秘诀就是:要找到其共同属性,然后挨个遍历出来,缺点就是单选只能选中最后一个。多选就全部选中。

好了,今天时间也不早了,宏哥就讲解和分享到这里,感谢您耐心的阅读,希望对您有所帮助。

  每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问)或者微信搜索: 北京宏哥  公众号提前解锁更多干货。

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

相关文章:

  • 数据库应用:Windows 部署 MySQL 8.0.36
  • 字符串(算法竞赛)--Manacher(马拉车)算法
  • Unity3D MVC开发模式与开发流程详解
  • QT/自定义槽和信号
  • Sentinel微服务流量治理组件实战上
  • SQL语法法则
  • Cover和contain属性
  • 算法沉淀——动态规划之简单多状态 dp 问题(上)(leetcode真题剖析)
  • 【0基础也能学会】JMeter:如何开始简单的WEB压力测试?
  • Vision Mamba:使用双向状态空间模型进行高效视觉表示学习
  • 微服务Day6
  • 5.22 BCC工具之deadlock.py解读
  • 相机选型介绍
  • WordPress后台自定义登录和管理页面插件Admin Customizer
  • 工厂设计模式总结
  • es6
  • Java|序列化异常StreamCorruptedException的解决方法
  • js如何打印object对象
  • MySQL主从复制读写分离及奇怪的问题
  • nodejs:开发并发布一个nodejs包
  • Objective-C 中关联引用的概念
  • QQ浏览器x5内核的兼容性问题
  • React 快速上手 - 07 前端路由 react-router
  • Solarized Scheme
  • Spring Boot MyBatis配置多种数据库
  • Vim Clutch | 面向脚踏板编程……
  • vue.js框架原理浅析
  • 分布式任务队列Celery
  • 鱼骨图 - 如何绘制?
  • elasticsearch-head插件安装
  • ​马来语翻译中文去哪比较好?
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ​学习一下,什么是预包装食品?​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #{}和${}的区别是什么 -- java面试
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (Java数据结构)ArrayList
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (译)计算距离、方位和更多经纬度之间的点
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NetCore 如何动态路由