微软出品自动化神器【Playwright+Java】系列(五) 之 常见点击事件操作
写在前面
明天就是周五了,这周有那么一两天心情特别不好,真的是做什么都没兴致,所以导致整个人都很丧,什么都不想做。
本打算周一就更新这篇文章的,但由于公司一直加班,每天到家很晚,都是挤时间去学,理解后再输出到博客写出来,所以导致进度就滞后了,真的不是我偷懒,还请一直关注我的小伙伴能够理解。
常见点击事件操作
这部分主要演示的常见点击操作,例如:文本输入、复选框、单选按钮、选择选项、鼠标点击事件等等。
1、输入操作
语法: Locator.fill(value)
使用场景: 文本框、日期/时间、日历控件等输入框
示例代码如下:
/**
* 输入操作:
* 语法:Locator.fill(value)
* 使用场景:文本框、日期/时间、日历控件等输入框
*/
@Test
public void testInput() {
page.locator("#user").fill("公众号:软件测试君");
String value = page.locator("#user").getAttribute("value");
//输出 ==> 公众号:软件测试君
System.out.println(value);
}
2、点击操作
语法: Locator.click()
适用场景: 单选框、复选框、按钮控件、常见可点击控件等等!
示例代码如下:
/**
* 点击操作
* 语法:Locator.click()
* 适用场景:单选框、复选框、按钮控件、常见可点击控件等等!
*/
@Test
public void testClick() {
//点击超链接
page.locator(".baidu").click();
page.goBack();
//点击单选框(RadioBox)
page.locator(".Volvo").click();
//点击复选框(checkbox)
page.locator("#checkbox [type='checkbox']:nth-child(7)").click();
}
3、单选框及复选框操作
语法: Locator.setChecked(checked)
适用场景: 单选框、复选框
示例代码如下:
/**
* 单选框及复选框操作
* 语法:Locator.setChecked(checked)
* 适用场景:单选框、复选框
*/
@Test
public void testChecked() {
//单选款 (选中,已选中状态下无效)
page.locator(".Volvo").setChecked(true);
page.locator(".Volvo").check();
System.out.println(page.locator(".Volvo").isChecked());
//复选框(选中,已选中状态下无效)
page.locator("#checkbox [type='checkbox']:nth-child(7)").check();
page.locator("#checkbox [type='checkbox']:nth-child(7)").setChecked(true);
System.out.println(page.locator("#checkbox [type='checkbox']:nth-child(7)").isChecked());
}
4、下拉控件操作
语法: Locator.selectOption(values[, options])
适用场景: 下拉框操作
示例代码如下:
/**
* 下拉控件操作
* 语法:Locator.selectOption(values[, options])
* 适用场景:下拉框操作
*/
@Test
public void testSelectOption() {
//通过value值选择
page.locator("[name='select']").selectOption("opel");
//通过可见文本选择
page.locator("[name='select']").selectOption(new SelectOption().setLabel("Audi"));
// 多选无效,只能选中第一个(saab)
//page.locator("[name='select']").selectOption(new String[] {"saab", "opel"});
}
5、鼠标事件
语法: 详见案例
适用场景:常见鼠标点击事件
案例如图:

示例代码如下:
/**
* 鼠标事件
* 语法:详见案例
* 适用场景:
*/
@Test
public void testMouse() {
page.navigate("http://localhost:8080/mouse.html");
//常规单击
page.locator("#mouse2").click();
pause(3);
//双击
page.locator("#mouse3").dblclick();
pause(3);
//右键单击
page.locator("#mouse5").click(new Locator.ClickOptions().setButton(MouseButton.RIGHT));
pause(3);
//按住Shift键并单击
page.locator("#mouse2").click(new Locator.ClickOptions().setModifiers(Arrays.asList(KeyboardModifier.SHIFT)));
pause(3);
//悬停在元素上
page.locator("#mouse1").hover();
pause(3);
//单击左上角
page.locator("#mouse1").click(new Locator.ClickOptions().setPosition(0, 0));
pause(3);
//强制点击
page.locator("#mouse2").click(new Locator.ClickOptions().setForce(true));
pause(3);
//调度点击事件来触发点击
page.locator("#mouse2").dispatchEvent("click");
}
注意: 不知道是什么原因, 在执行鼠标点击案例时,程序从上到下操作后会发现弹窗会自己点击关掉,神奇的很!
写到最后
对比学习看的话,Selenium操作点击后的弹窗需要alert来完成确认,而Playwright却可以自动点击,可以说比Selenium智能吗?有兴趣的小伙伴可以自己尝试。
微软出品自动化神器【Playwright+Java】系列(五) 之 常见点击事件操作的更多相关文章
- 微软出品自动化神器Playwright,不用写一行代码(Playwright+Java)系列(一) 之 环境搭建及脚本录制
一.前言 半年前,偶然在视频号刷到某机构正在直播讲解Playwright框架的使用,就看了一会,感觉还不错,便被种草,就想着自己有时间也可以自己学一下,这一想着就半年多过去了. 读到这,你可能就去百度 ...
- 微软出品自动化神器Playwright(Playwright+Java)系列(四) 之 浏览器操作
写在前面 今天是国庆节的最后一天,明天又要上班了,真的是感觉好像才开始放假一样,还是因为失恋没缓过来吗? 我的国庆七天 第1天,当了近半天的司机,陪家人去各大超市去购物,下午在家躺····· 第2-5 ...
- 探索微软开源Python自动化神器Playwright
相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...
- 微软开源的Web测试和自动化神器 Playwright
Playwright 是微软开源的一个用于 Web 测试和自动化的框架, 提供了可靠的端到端测试, 功能非常强大, 可以在测试, 爬虫,自动化场景中使用. 跨浏览器 Playwright 支持所有现代 ...
- Wireshark入门与进阶系列五之常见捕获过滤器
0x00 前言 我们都知道,wireshark可以实现本地抓包,同时Wireshark也支持remote packet capture protocol(rpcapd)协议远程抓包,只要在远程主机上安 ...
- java多线程系列(五)---synchronized ReentrantLock volatile Atomic 原理分析
java多线程系列(五)---synchronized ReentrantLock volatile Atomic 原理分析 前言:如有不正确的地方,还望指正. 目录 认识cpu.核心与线程 java ...
- java基础解析系列(五)---HashMap并发下的问题以及HashTable和CurrentHashMap的区别
java基础解析系列(五)---HashMap并发下的问题以及HashTable和CurrentHashMap的区别 目录 java基础解析系列(一)---String.StringBuffer.St ...
- 《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
1.简介 今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历多选按钮.大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的多选按钮进行实战. 2.d ...
- [转] Android自动化测试之使用java调用monkeyrunner(五)
Android自动化测试之使用java调用monkeyrunner 众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本.不过, ...
随机推荐
- hexo-yilia主题支持twikoo评论系统
如果图片无法加载,可到 我的博客 中,查看完整文章 yilia-more 已经增加对 twikoo 的支持,可直接使用 代码修改 layout/_partial/post 路径下新建 twikoo.e ...
- mysql like 命中索引
反向索引案例:CREATE TABLE my_tab(x VARCHAR2(20)); INSERT INTO my_tab VALUES('abcde'); COMMIT; CREATE INDEX ...
- Java开发学习(二十一)----Spring事务简介与事务角色解析
一.Spring事务简介 1.1 相关概念介绍 事务作用:在数据层保障一系列的数据库操作同成功同失败 Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败 数据层有事务我们可以理解 ...
- 人工智能不过尔尔,基于Python3深度学习库Keras/TensorFlow打造属于自己的聊天机器人(ChatRobot)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_178 聊天机器人(ChatRobot)的概念我们并不陌生,也许你曾经在百无聊赖之下和Siri打情骂俏过,亦或是闲暇之余与小爱同学谈 ...
- linux 磁盘io利用率高,分析的正确姿势
一.背景简介 作为一个DBA难免不了会遇到性能问题,那么我们遇到性能问题该如何进行排查呢?例如我们在高并发的业务下,出现业务响应慢,处理时间长我们又该如何入手进行排查,本片文章将分析io高的情况下如何 ...
- BTDetect用户协议和技术支持
1.巴蜀生物科技检测用户协议 2.基于机器学习的生物检测项目 3.BTDetect用户手册和技术支持
- Luogu4085 [USACO17DEC]Haybale Feast (线段树,单调队列)
\(10^18\)是要long long的. \(nlogn\)单调队列上维护\(logn\)线段树. #include <iostream> #include <cstdio> ...
- SpringBoot接收MultipartFile文件,并保存文件
package com.hrw.controller; import com.hrw.pojo.Result; import org.apache.tomcat.util.http.fileuploa ...
- ASP.NET CORE在docker中的健康检查(healthcheck)
在使用docker-compose的过程中,很多程序都提供了健康检查(healthcheck)的方法,通过健康检查,应用程序能够在确保其依赖的程序都已经启动的前提下启动,减少各种错误的发生,同时,合理 ...
- [NOI2021] 密码箱 (平衡树,连分数,Stern-Brocot 树,矩阵)
题面 记忆犹新 题解 f f f 函数值给得非常明显,一看就给人一种熟悉感--这不是连分数吗? 众所周知,连分数有个递推公式,即 p i = a i p i − 1 + p i − 2 q i = a ...