Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >软件测试|web自动化测试神器playwright教程(二十二)

软件测试|web自动化测试神器playwright教程(二十二)

原创
作者头像
霍格沃兹测试开发Muller老师
发布于 2023-07-31 10:35:02
发布于 2023-07-31 10:35:02
31605
代码可运行
举报
运行总次数:5
代码可运行

前言

工作和生活中,经常会遇到我们需要进行选择的情况,比如勾选,或者我们选择性别,男女两个性别总是不能同时选中的,比如我们在选择兴趣爱好时,我们可以选择多个自己感兴趣的话题,比如篮球足球电竞等话题。我们在执行自动化测试的过程中,必须要学会处理这样的情况。

页面示例

以下面的界面为例:

页面代码如下:

代码语言:html
AI代码解释
复制
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
</head>
<body>
<fieldset>
<legend>单选按钮radio</legend>
<form action="">
    <label for=""><input type="radio" name="brand" value="toyota" id="toyota">丰田</label>
    <label for=""><input type="radio" name="brand" value="volkswagen" id="volkswagen">大众</label>
    <label for=""><input type="radio" name="brand" value="honda" id="honda">本田</label>
    <label for=""><input type="radio" name="brand" value="bmw" id="bmw" checked="">宝马</label>
    <label for=""><input type="radio" name="brand" value="benz" id="benz" >奔驰</label>
</form>
</fieldset>
<br>
<fieldset>
<legend>多选按钮checkbox</legend>
<form action="">
    <input type="checkbox" name="checkbox" value="动力" id="power">动力<br>
    <input type="checkbox" name="checkbox" value="油耗" id="fuel">油耗<br>
    <input type="checkbox" name="checkbox" value="舒适" id="comfort" >舒适 <br>
    <input type="checkbox" name="checkbox" value="驾驶" id="driving" >驾驶 <br>
</form>
</fieldset>
</body>
</html>

playwright选择操作

上述的就是我们最常见的radio单选框和checkbox多选框,playwright提供了一些处理单选框以及多选框的方法,如下:

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

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

  • click()点击操作
代码语言:python
代码运行次数:2
运行
AI代码解释
复制
 # radio 操作
    status1 = page.locator('#bmw').is_checked()
    print(status1)
    # 选择奔驰
    page.locator('#benz').click()
    print(page.locator('#benz').is_checked())
  • check() 检查操作
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
 # 选择toyota
    page.locator('#toyota').check()
    print(page.locator('#toyota').is_checked())
  • set_checked()
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 选择大众
    page.locator('#volkswagen').set_checked(checked=True)
    print(page.locator('#volkswagen').is_checked())

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

  • 调用page对象
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
page.check('#honda')

page.set_checked('#honda', checked=True)

需注意的是,如果bmw本身就是选择状态,去设置unchecked 状态,会报错: Clicking the checkbox did not change its state,如下

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
page.locator('#bmw').uncheck()

报错如下:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
    result = next(iter(done)).result()
playwright._impl._api_types.Error: Clicking the checkbox did not change its state
=========================== logs ===========================
waiting for locator("#bmw")
  1. checkbox 复选框

checkbox 复选框跟 radio 操作的区别在于,如果已经被选择了,再点击会被取消选中,所以不会有前面的报错。

  • click(),未选中的时候,点击就会被选中。
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
 # checkbox 操作
    page.locator('#power').click()
    print(page.locator('#power').is_checked())
  • check() 或 set_checked() ,如果想让元素必须是选择状态(不管之前有没被选中),可以使用这两种方法
代码语言:python
代码运行次数:3
运行
AI代码解释
复制
    page.locator('#comfort').check()
    print(page.locator('#comfort').is_checked())

   # checkbox 操作
    page.locator('#driving').set_checked(checked=True)
    print(page.locator('#driving').is_checked())
  • 批量选中checkbox,定位全部CheckBox 批量选中
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
 # checkbox 操作
    box = page.locator('[type="checkbox"]')
    for item in box.all():
        item.check()

总结

本文主要介绍了playwright对选择框的处理,playwright对选择框的处理比selenium更为简单,没有类似selenium的复杂操作,更为直接便捷。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
软件测试|web自动化测试神器playwright教程(三十三)
我们在使用selenium进行web自动化测试工作时,有时需要通过添加显式等待的方式,判断元素是否可见或者是否可以点击,其实这些元素属性也可以用于断言中,playwright同样可以去获取元素的状态,用于我们的后续操作或者断言中。本篇文章就来给大家介绍一下playwright对元素状态的判断。
霍格沃兹测试开发Muller老师
2023/08/07
7150
《最新出炉》系列初窥篇-Python+Playwright自动化测试-24-处理单选和多选按钮-上篇
在工作和生活中,经常会遇到我们需要进行选择的情况,比如勾选我们选择性别,男女两个性别总是不能同时选中的,再比如我们在选择兴趣爱好时,我们可以选择多个自己感兴趣的话题,比如:篮球、足球、电竞等话题。我们在执行自动化测试的过程中,必须要学会处理这样的情况。在实际自动化测试过程中,我们同样也避免不了会遇到单选和多选的测试,特别是调查问卷或者是答题系统中会经常碰到。因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助。
北京-宏哥
2023/10/25
1.5K0
软件测试|web自动化测试神器playwright教程(十四)
在使用selenium定位的过程中,我们可以选择使用selenium的Select类,有了playwright,我们的操作会变得更简单一些。
霍格沃兹测试开发Muller老师
2023/07/17
2420
软件测试|web自动化测试神器playwright教程(三十)
我们可以从表格结构中发现,table页面有这几个明显的标签:table、tr、th、td
霍格沃兹测试开发Muller老师
2023/08/03
5030
《最新出炉》系列初窥篇-Python+Playwright自动化测试-25-处理单选和多选按钮-中篇
上一篇中宏哥讲解和介绍的单选框有点多,而且由于时间的关系,宏哥决定今天讲解和分享复选框的相关知识。
北京-宏哥
2023/10/31
4830
软件测试|web自动化测试神器playwright教程(十)
PO设计模式是我们在进行web自动化测试中经常使用到的思想和原则,甚至已经成为了web自动化测试的标准模型,PO设计模式在selenium官方文档中是被推荐的原则,同样的,playwright也是完全支持我们按照PO模式的思想来写我们的测试用例。
霍格沃兹测试开发Muller老师
2023/03/30
9980
软件测试|web自动化测试神器playwright教程(二十八)
在我们使用部分网站的时候,我们会遇到进行日期选择的问题,比如我们预定火车票或者预定酒店,需要选择发车日期或者酒店的入住与退房时间。我们执行自动化测试遇到日期控件时,如果可以输入,可以使用selenium的send_keys()方法进行输入,playwright同样也可以实现对日期控件的操作,本文我们就来介绍一下playwright的日期控件操作。
霍格沃兹测试开发Muller老师
2023/08/02
4320
微软出品自动化神器【Playwright+Java】系列(五) 之 常见点击事件操作
明天就是周五了,这周有那么一两天心情特别不好,真的是做什么都没兴致,所以导致整个人都很丧,什么都不想做。
软件测试君
2022/12/05
1.9K0
微软出品自动化神器【Playwright+Java】系列(五) 之  常见点击事件操作
软件测试|web自动化测试神器playwright教程(二十七)
使用selenium进行web自动化测试,如果我们打开了多个网页,进行网页切换时,我们需要先获取各个页面的句柄,通过句柄来区分各个页面,然后使用switch_to.window()实现切换,这样的操作比较麻烦,playwright的网页切换比selenium更为简单快捷。本文就给大家介绍一下playwright多个网页的切换方法。
霍格沃兹测试开发Muller老师
2023/08/02
4600
【Playwright+Python】系列教程(二)手把手带你写一个自动化测试脚本
在 playwright.chromium.launch() 中传入 proxy 参数即可,示例代码如下:
软件测试君
2024/07/02
8760
【Playwright+Python】系列教程(二)手把手带你写一个自动化测试脚本
软件测试|web自动化测试神器playwright教程(三十七)
Playwright是一个强大的自动化测试工具,可以与Python集成,用于测试Web应用程序和执行自动化任务。其中,highlight()方法是Playwright的一个有用功能,可以突出显示Web页面上的元素,方便调试和可视化操作。本文将介绍Playwright库中的highlight()方法,以及如何使用Python进行集成和应用。
霍格沃兹测试开发Muller老师
2023/08/20
4660
《最新出炉》系列初窥篇-Python+Playwright自动化测试-26-处理单选和多选按钮-下篇
今天这一篇宏哥主要是讲解一下,如何使用Playwright来遍历单选和多选按钮。大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的单选和多选按钮进行实战。
北京-宏哥
2023/11/02
4240
软件测试|web自动化测试神器playwright教程(二十六)
我们使用selenium进行元素拖拽时,通常要使用ActionChains来实现drag_and_drop的操作,playwright同样可以实现元素的拖拽和释放的操作。
霍格沃兹测试开发Muller老师
2023/08/02
3600
[1291]Playwright教程
这种类型的python库有好多种,鼎鼎大名的selenium,还有playwright、Pyppeteer等。
周小董
2024/12/20
8330
[1291]Playwright教程
【python自动化】Playwright基础教程(三)定位操作
上文我们已经能够成功进行登录操作了。对于里面的一些定位方式,输入,点击等操作,在这一节,我们直接进行一个大汇总。以后遇到直接来这里搜。
梦无矶小仔
2023/09/19
1.8K0
【python自动化】Playwright基础教程(三)定位操作
软件测试|web自动化测试神器playwright(五)
在web自动化测试中,frame是我们绕不开的一个东西,也是我们很头疼的东西,selenium处理frame,需要切换到frame中,然后再切换出来,操作比较麻烦,那么playwright对于frame的操作会不会更加简单呢?
霍格沃兹测试开发Muller老师
2023/08/08
4290
软件测试|web自动化测试神器playwright(五)
微软自动化神器playwright
https://www.bilibili.com/video/BV14B4y1z7Ev
懿曲折扇情
2022/08/24
3.3K1
微软自动化神器playwright
软件测试|web自动化测试神器playwright教程(九)
在我们编写web自动化测试脚本时,我们通常会使用浏览器自带的开发者工具去查找元素,但是也会存在我们在页面中能找到的元素,但是在运行脚本时,元素却找不到,这是日常的web自动化测试工作中,最让人头疼的问题。
霍格沃兹测试开发Muller老师
2023/03/30
8890
软件测试|web自动化测试神器playwright教程(十七)
上篇文章我们介绍了使用playwright下载文件的方法,本篇文章我们将介绍使用playwright上传文件。
霍格沃兹测试开发Muller老师
2023/07/31
5240
《手把手教你》系列技巧篇(三十三)-java+ selenium自动化测试-单选和多选按钮操作-上篇(详解教程)
  在实际自动化测试过程中,我们同样也避免不了会遇到单选和多选的测试,特别是调查问卷或者是答题系统中会经常碰到。因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助。
北京-宏哥
2021/10/26
2.2K0
推荐阅读
软件测试|web自动化测试神器playwright教程(三十三)
7150
《最新出炉》系列初窥篇-Python+Playwright自动化测试-24-处理单选和多选按钮-上篇
1.5K0
软件测试|web自动化测试神器playwright教程(十四)
2420
软件测试|web自动化测试神器playwright教程(三十)
5030
《最新出炉》系列初窥篇-Python+Playwright自动化测试-25-处理单选和多选按钮-中篇
4830
软件测试|web自动化测试神器playwright教程(十)
9980
软件测试|web自动化测试神器playwright教程(二十八)
4320
微软出品自动化神器【Playwright+Java】系列(五) 之 常见点击事件操作
1.9K0
软件测试|web自动化测试神器playwright教程(二十七)
4600
【Playwright+Python】系列教程(二)手把手带你写一个自动化测试脚本
8760
软件测试|web自动化测试神器playwright教程(三十七)
4660
《最新出炉》系列初窥篇-Python+Playwright自动化测试-26-处理单选和多选按钮-下篇
4240
软件测试|web自动化测试神器playwright教程(二十六)
3600
[1291]Playwright教程
8330
【python自动化】Playwright基础教程(三)定位操作
1.8K0
软件测试|web自动化测试神器playwright(五)
4290
微软自动化神器playwright
3.3K1
软件测试|web自动化测试神器playwright教程(九)
8890
软件测试|web自动化测试神器playwright教程(十七)
5240
《手把手教你》系列技巧篇(三十三)-java+ selenium自动化测试-单选和多选按钮操作-上篇(详解教程)
2.2K0
相关推荐
软件测试|web自动化测试神器playwright教程(三十三)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验