前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)

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

原创
作者头像
北京-宏哥
发布2025-02-10 07:53:38
发布2025-02-10 07:53:38
16300
代码可运行
举报
运行总次数:0
代码可运行

1.简介

在工作和生活中,经常会遇到我们需要进行选择的情况,比如:勾选我们选择性别,男女两个性别总是不能同时选中的,再比如:我们在选择兴趣爱好时,我们可以选择多个自己感兴趣的话题,比如:篮球、足球、电竞等话题。我们在实际工作中进行自动化测试的过程中,必须要学会处理这种单选和多选的情况。在实际自动化测试过程中,我们同样也避免不了会遇到单选和多选的测试,特别是调查问卷或者是答题系统中会经常碰到。因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助或者参考。

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

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

3.被测页面html源代码

3.1 radio.html

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

代码语言:javascript
代码运行次数:0
复制
<!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.页面效果,如下图所示:

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

4.PlayWright选择操作

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

  • locator.click(); 点击操作
  • locator.check(); 选中
  • locator.uncheck(); 不选中
  • locator.setChecked() ;设置选中状态
  • locator.isChecked(); 判断是否被选中

5.单选框操作

radio是单选,以我们的html文件为例,如果李白已经被选了再点击李白是不会改变状态的,我们只有点击其他的按钮才会改变状态。

5.1click()点击操作

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

5.1.1代码设计

5.1.2参考代码

代码语言:javascript
代码运行次数:0
复制
package com.bjhg.playwright;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)
 * 
 * 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
 *
 * 2025年02月10日
 */
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("file:///E:/Desktop/test/radio.html");
              //4.定位
              page.locator("[value='1']").click();
              System.out.println("Test Pass");
              //5.关闭page
              page.close();
              //6.关闭browser
              browser.close();
        }
    }
}

5.1.3运行代码

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

2.运行代码后电脑端的浏览器的动作(可以看到默认选中“李白”,之后会点击选中“韩信”)。如下图所示:

5.2isCheck() 检查操作

这个方法一般用于断言,看某个单选按钮是否被选中,选中是“true”,未选中是“false”。确保复选框或单选元素已选中。返回元素是否已选中。如果元素不是复选框或单选输入,则抛出异常。

5.2.1代码设计

5.2.2参考代码

代码语言:javascript
代码运行次数:0
复制
package com.bjhg.playwright;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)
 * 
 * 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
 *
 * 2025年02月10日
 */
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("file:///E:/Desktop/test/radio.html");
              //4.定位
              // 判断李白是否被选中(html默认设置是选中的)
              boolean status1 = page.locator("[value='0']").isChecked();
              System.out.println("李白是否被选中:"+status1);
              // 选择孙尚香
              page.locator("[value='3']").click();
              System.out.println("孙尚香是否被选中:"+page.locator("[value='3']").isChecked());
              
              System.out.println("Test Pass");
              //5.关闭page
              page.close();
              //6.关闭browser
              browser.close();
        }
    }
}

5.2.3运行代码

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

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

5.3check()和uncheck()操作

宏哥感觉check()和click的用法差不多。确保复选框或单选元素已选中。

5.3.1代码设计

5.3.2参考代码

代码语言:javascript
代码运行次数:0
复制
package com.bjhg.playwright;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)
 * 
 * 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
 *
 * 2025年02月10日
 */
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("file:///E:/Desktop/test/radio.html");
              //4.定位
              // 选择孙尚香
              page.locator("[value='3']").check();
              System.out.println("孙尚香是否被选中:"+page.locator("[value='3']").isChecked());
              
              System.out.println("Test Pass");
              //5.关闭page
              page.close();
              //6.关闭browser
              browser.close();
        }
    }
}

5.3.3运行代码

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

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

5.4setChecked()操作

注:setChecked()需传checked 参数,参数为布尔值。设置复选框或单选元素的状态。

5.4.1代码设计

5.4.2参考代码

代码语言:javascript
代码运行次数:0
复制
package com.bjhg.playwright;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)
 * 
 * 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
 *
 * 2025年02月10日
 */
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("file:///E:/Desktop/test/radio.html");
              //4.定位
              // 选择孙尚香
              page.locator("[value='3']").setChecked(true);
              System.out.println("孙尚香是否被选中:"+page.locator("[value='3']").isChecked());
              
              System.out.println("Test Pass");
              //5.关闭page
              page.close();
              //6.关闭browser
              browser.close();
        }
    }
}

5.4.3运行代码

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

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

5.5page对象直接调用

5.5.1用法如下

代码语言:javascript
代码运行次数:0
复制
page.click("[value='1']");
page.check("[value='1']");
page.setChecked("[value='1']", true);

5.5.2代码设计

5.5.3参考代码

代码语言:javascript
代码运行次数:0
复制
package com.bjhg.playwright;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)
 * 
 * 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
 *
 * 2025年02月10日
 */
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("file:///E:/Desktop/test/radio.html");
              //4.定位
              page.click("[value='3']");
              System.out.println("孙尚香是否被选中:"+page.locator("[value='3']").isChecked());
              page.check("[value='0']");
              System.out.println("李白是否被选中:"+page.locator("[value='0']").isChecked());
              page.setChecked("[value='2']", true);
              System.out.println("露娜是否被选中:"+page.locator("[value='2']").isChecked());
              
              System.out.println("Test Pass");
              //5.关闭page
              page.close();
              //6.关闭browser
              browser.close();
        }
    }
}

5.5.4运行代码

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

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

6.小结

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简介
  • 2.什么是单选框、复选框?
  • 3.被测页面html源代码
    • 3.1 radio.html
  • 4.PlayWright选择操作
  • 5.单选框操作
    • 5.1click()点击操作
      • 5.1.1代码设计
      • 5.1.2参考代码
      • 5.1.3运行代码
    • 5.2isCheck() 检查操作
      • 5.2.1代码设计
      • 5.2.2参考代码
      • 5.2.3运行代码
    • 5.3check()和uncheck()操作
      • 5.3.1代码设计
      • 5.3.2参考代码
      • 5.3.3运行代码
    • 5.4setChecked()操作
      • 5.4.1代码设计
      • 5.4.2参考代码
      • 5.4.3运行代码
    • 5.5page对象直接调用
      • 5.5.1用法如下
      • 5.5.2代码设计
      • 5.5.3参考代码
      • 5.5.4运行代码
  • 6.小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档