news 2026/4/16 13:06:05

Java+Playwright自动化测试-30- 操作单选和多选按钮 - 番外篇(详细教程)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java+Playwright自动化测试-30- 操作单选和多选按钮 - 番外篇(详细教程)

1.简介

前边几篇文章是宏哥自己在本地弄了一个单选和多选的demo,给小伙伴或童鞋们演示了一下如何使用playwright来处理单选按钮和多选按钮进行自动化测试,想必大家都已经掌握的八九不离十了吧。这一篇其实也很简单,主要是分两部分内容来讲解和分享的。一部分,宏哥是利用JQueryUI网站里的单选和多选按钮进行实战,主要是循环遍历,对前边内容进行梳理和回顾。另一部分就是宏哥在网上找了一个问卷调查例子,运用前边所学的知识趁热打铁地给小伙伴或童鞋们来演示一下。前边的文章中的一些单选和多选的基本概念都介绍了,这里就不做赘述了。直接上项目进行实战。

2.JQueryUI网站

https://www.jq22.com/ 这个是宏哥又找到的一个网站,不错的,有源码。进入后可以搜索你要演示的demo。

2.1被测网址

1.被测网址的地址:

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

https://www.jq22.com/demo/inputStyle201703310052

2.网页如下图:

2.2代码设计

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

2.3参考代码

package com.bjhg.playwright;

import java.util.List;

import com.microsoft.playwright.Browser;

import com.microsoft.playwright.BrowserContext;

import com.microsoft.playwright.BrowserType;

import com.microsoft.playwright.Locator;

import com.microsoft.playwright.Page;

import com.microsoft.playwright.Playwright;

/**

* @author 北京-宏哥

*

* @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)

*

* 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-28- 操作单选和多选按钮 - 中篇(详细教程)

*

* 2025年01月26日

*/

public class Test_Radio {

public static void main(String[] args) {

try (Playwright playwright = Playwright.create()) {

//1.使用chromium浏览器,# 浏览器配置,设置以GUI模式启动Chrome浏览器(要查看浏览器UI,在启动浏览器时传递 headless=false 标志。您还可以使用 slowMo 来减慢执行速度。

Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(3000));

//2.创建context

BrowserContext context = browser.newContext();

//创建page

Page page = context.newPage();

//3.浏览器访问demo

page.navigate("https://www.jq22.com/demo/inputStyle201703310052");

//4.定位所有单选按钮

List<Locator> radios = page.locator("[name='hot']").all();

//遍历单选按钮

for(Locator radio:radios){

//判断单选按钮是否选中,不选中才点击

if(!radio.isChecked()){

//点击单选按钮

radio.click();

}

}

System.out.println("Test Pass");

//5.关闭page

page.close();

//6.关闭browser

browser.close();

}

}

}

2.4运行代码

1.运行代码,右键Run As->Java Application,就可以看到控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作(可以看到单选按钮挨个都被点到了)。如下图所示:

3.项目实战

3.1问卷调查

1.测试问卷调查的地址:

https://www.sojump.com/m/2792226.aspx/

2.问卷页面,如下图所示:

3.2答题思路

自动化测试答题思路,其实和前边单选多选的遍历差不多,具体思路如下:

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

2.使用共同点来定位单选和多选按钮,将其放在容器中。

3.利用for循环将其(单选和多选按钮)从容器中一一遍历出来,并进行逐个click。

3.3代码设计

根据答题中的遍历思路进行代码设计如下图所示:

3.4参考代码

package com.bjhg.playwright;

import java.util.List;

import com.microsoft.playwright.Browser;

import com.microsoft.playwright.BrowserContext;

import com.microsoft.playwright.BrowserType;

import com.microsoft.playwright.Locator;

import com.microsoft.playwright.Page;

import com.microsoft.playwright.Playwright;

/**

* @author 北京-宏哥

*

* @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)

*

* 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-28- 操作单选和多选按钮 - 中篇(详细教程)

*

* 2025年01月29日

*/

public class Test_Radio {

public static void main(String[] args) {

try (Playwright playwright = Playwright.create()) {

//1.使用chromium浏览器,# 浏览器配置,设置以GUI模式启动Chrome浏览器(要查看浏览器UI,在启动浏览器时传递 headless=false 标志。您还可以使用 slowMo 来减慢执行速度。

Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(3000));

//2.创建context

BrowserContext context = browser.newContext();

//创建page

Page page = context.newPage();

//3.浏览器访问demo

page.navigate("https://www.sojump.com/m/2792226.aspx");

Thread.sleep(1000);

//4.定位所有单选按钮

List<Locator> radios = page.locator("//*/div[@id='divQuestion']/fieldset/div/div/div/span/input/../a").all();

//遍历单选按钮

for(Locator radio:radios){

//点击单选按钮

radio.click();

}

System.out.println("Test Pass");

//5.关闭page

page.close();

//6.关闭browser

browser.close();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

3.5运行代码

1.运行代码,右键Run As->Java Application,就可以看到控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作(可以看到所有题目的单选和多选全部点击一遍)。如下图所示:

4.小结

4.1画蛇添足

实践过程中,宏哥遇到一个报错,原就是画蛇添足,多写一段代码:判断按钮是否选中,结果导致报错:

Exception in thread "main" com.microsoft.playwright.PlaywrightException: Error {

message='Error: Not a checkbox or radio button

意思是:不是单选或者多选按钮,宏哥F12查看果然不是,是一个input标签,如下图所示:

因此需要将那个判断是否选中的代码取消之后,代码成功运行。

今天其实就是对前边单选和多选循环的一次总结和实践。其他的也没有新的东西。好了,今天时间也不早了,宏哥就讲解和分享到这里,感谢您耐心的阅读,希望对您有所帮助。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 11:26:40

2026年速通前端面试题1000道,适用于99%的中大厂。少走弯路

整理了2025年最全的Web前端高频面试题&#xff0c;JavaScript、CSS、ES6、vue2、Vue3、React、Node.JS、小程序、HTTP、TypeScript、Webpack、Git、Linux、算法与数据结构、设计模式等等 题库共 1000 道&#xff0c;带全部答案&#xff0c;非常齐全&#xff01; 因为文件太多&a…

作者头像 李华
网站建设 2026/4/16 7:38:38

扩散模型实战指南:从零基础到行业应用的完整解决方案

扩散模型实战指南&#xff1a;从零基础到行业应用的完整解决方案 【免费下载链接】Awesome-Diffusion-Models 项目地址: https://gitcode.com/gh_mirrors/awe/Awesome-Diffusion-Models 你是否曾为扩散模型的神秘感而却步&#xff1f;或者在实际应用中遇到了各种技术难…

作者头像 李华
网站建设 2026/4/15 11:32:20

月初面了十多个前端开发,感觉天都塌了...

不是说他们基础不好。相反&#xff0c;很多人对React生命周期 、 Vue响应式原理甚至 Webpack配置项都能对答如流。真正让我感到“天塌了”的瞬间&#xff0c;是在连续几个候选人面对同一个看似简单的场景题时&#xff0c;表现出的集体性失语。 题目大概是这样的&#xff1a; “…

作者头像 李华
网站建设 2026/4/15 10:32:55

Tarjan全家桶系列--强联通分量

强联通分量(SCC) 有向图中的一个​​极大子图​&#xff0c;其中任意两个节点 u 和 v 都​​互相可达​&#xff08;即存在 u→v和 v→u的路径&#xff09;&#xff0c;则这个子图为一个强联通分量 Tarjan 算法基于深度优先搜索&#xff08;DFS&#xff09;&#xff0c;利用 DF…

作者头像 李华
网站建设 2026/4/1 7:59:38

手把手教你学Simulink——基于高比例可再生能源渗透的复杂电网建模场景实例:含高比例风电接入的弱电网稳定性分析与仿真

目录 手把手教你学Simulink ——基于高比例可再生能源渗透的复杂电网建模场景实例:含高比例风电接入的弱电网稳定性分析与仿真 一、背景介绍 二、系统结构设计 三、建模过程详解 第一步:创建新 Simulink 项目 第二步:添加主要模块 1. 风电场模型 2. 弱电网模型 3. …

作者头像 李华
网站建设 2026/4/9 18:29:10

学Simulink--基于高比例可再生能源渗透的复杂电网建模场景实例:新能源高渗透下传统同步机主导系统的动态响应建模

目录 手把手教你学Simulink ——基于高比例可再生能源渗透的复杂电网建模场景实例:新能源高渗透下传统同步机主导系统的动态响应建模 一、背景介绍 二、系统结构设计 三、建模过程详解 第一步:创建新 Simulink 项目 第二步:添加主要模块 1. 新能源发电模型 2. 同步…

作者头像 李华