前言:

今天一早起床,就一直太阳穴疼,吃了四片去痛片已经无效,真的是疼的直恶心。

如果说学习或者写文章,能够或者头疼的话,那我想说,我还能坚持一会.....

很久没更新这系列的文章了,那么我们将Playwright+Java系列延续,带上自己的那份快乐开始吧!

想系统学习请参考:Playwright+Java入门

Action系列API

《微软出品自动化神器【Playwright+Java】系列(五) 之 常见点击事件操作》,这篇文章已经提及了一些,今天这部书属于下集,下面将针对这部分API进行距离讲解。

1、模拟键盘输入字符操作

  • 语法: Locator.type(value)
  • 使用场景: 模拟键盘输入字符

注意:

大多数时候,Page.fill()可以满足要求。如不能输入时,可以考虑键入字符操作。

示例代码如下:

@Test
public void testInput() {
page.locator("#user").type("公众号:软件测试君");
}

2、单元素键盘事件操作

  • 语法:Locator.press(键盘事件)
  • 使用场景:定位元素并产生单个键盘事件

它接受在键盘事件的keyboardEvent.key属性中发出的逻辑键名称:

Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape,
ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight,
ArrowUp, F1 - F12, Digit0 - Digit9, KeyA - KeyZ, etc.

注意: 需要指定大写字母A以Shift-A生成大写字符。Shift-a产生一个小写的,就好像你用CapsLock切换一样

示例代码如下:

@Test
public void testkeyboardEvent() {
page.locator("#user").type("公众号:软件测试君");
//模拟Ctrl+A 全选操作
page.locator("#user").press("Control+A");
//模拟回车操作 == > 跳转到百度页面
page.locator(".baidu").press("Enter");
pause(3);
}

3、上传文件

  • 语法:Locator.setInputFiles()
  • 使用场景:上传一个或多个文件

示例代码如下:

@Test
public void testUpload() {
//上传一个文件
page.locator("#load").setInputFiles(Paths.get("demo.md"));
// 上传多个文件
page.locator("#load").setInputFiles(new Path[]{Paths.get("pom.xml"), Paths.get("demo.md")});
}

4、聚焦元素

  • 语法:Locator.focus()
  • 使用场景:聚焦效果显示,真的很好看,哈哈

示例代码如下:

@Test
public void testFocus(){
page.locator("#user").focus();
pause(3);
}

效果如下:

5、拖拽操作

  • 语法:Locator.dragTo()
  • 使用场景:常见元素拖动操作

示例代码如下:

@Test
public void testDrag(){
page.navigate("http://localhost:8080/drag.html");
page.locator("#A").dragTo(page.locator(".container ul:nth-of-type(2)"));
pause(3);
}

6、悬浮操作

  • 语法:Locator.hover()、Mouse.down()、Mouse.move()和Mouse.up()
  • 使用场景:常见元素悬浮操作

示例代码如下:

@Test
public void testHover() {
page.locator("#action").hover();
pause(3);
}

写在最后

今天这篇文章更新难度系数很大,因为官方文档都是英文的,我是真的看不懂,只能借助谷歌浏览器的右键的翻译成中文来理解学习。

恰巧今天谷歌浏览器就像跟我抗议一样,我右键后,提示我无法翻译此网页,结果我搞这个报错整了近一个多小时,感兴趣的同学可以自己去参考解决方案

把这个报错搞好了,结果定位插件又不能用了,真的好气,经过一番折腾,定位插件也搞好了,终于可以接着学习和更文了。

不知道,在读文章的你有没有遇到过,要做什么事,总会有些小插曲,让你感到既开心又无奈呢?

感恩每次遇到的困难,都让我赚到了一笔经验!

我是六哥,请继续关注我,如果觉得文章对您有帮助,还请点赞、收藏并转发

微软出品自动化神器【Playwright+Java】系列(六) 之 字符输入、单元素键盘事件操作、上传文件、聚焦、拖拽、悬浮操作的更多相关文章

  1. 微软出品自动化神器Playwright,不用写一行代码(Playwright+Java)系列(一) 之 环境搭建及脚本录制

    一.前言 半年前,偶然在视频号刷到某机构正在直播讲解Playwright框架的使用,就看了一会,感觉还不错,便被种草,就想着自己有时间也可以自己学一下,这一想着就半年多过去了. 读到这,你可能就去百度 ...

  2. 微软出品自动化神器Playwright(Playwright+Java)系列(四) 之 浏览器操作

    写在前面 今天是国庆节的最后一天,明天又要上班了,真的是感觉好像才开始放假一样,还是因为失恋没缓过来吗? 我的国庆七天 第1天,当了近半天的司机,陪家人去各大超市去购物,下午在家躺····· 第2-5 ...

  3. 微软出品自动化神器【Playwright+Java】系列(五) 之 常见点击事件操作

    写在前面 明天就是周五了,这周有那么一两天心情特别不好,真的是做什么都没兴致,所以导致整个人都很丧,什么都不想做. 本打算周一就更新这篇文章的,但由于公司一直加班,每天到家很晚,都是挤时间去学,理解后 ...

  4. Postman系列三:Postman中post接口实战(上传文件、json请求)

    一:接口测试过程中GET请求与POST请求的主要区别 从开发角度我们看get与post的主要区别是:1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据:2.Get安全性比Post低 ...

  5. struts2官方 中文教程 系列六:表单验证

    先贴个本帖的地址,以免被爬:struts2教程 官方系列六:表单验证  即 http://www.cnblogs.com/linghaoxinpian/p/6906720.html 下载本章节代码 介 ...

  6. 《手把手教你》系列技巧篇(五十三)-java+ selenium自动化测试-上传文件-上篇(详细教程)

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...

  7. 《手把手教你》系列技巧篇(五十四)-java+ selenium自动化测试-上传文件-中篇(详细教程)

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...

  8. 《手把手教你》系列技巧篇(五十五)-java+ selenium自动化测试-上传文件-下篇(详细教程)

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...

  9. Java&Selenium借助AutoIt 实现非Input类型自动化上传文件

    通常情况下实现自动化上传文件,都是通过sendKeys函数直接将文件全路径传给页面空间就能完成,然而这种情况只能对Input类型的控件有效,对于非Input类型的控件可以借助AutoIt来完成 下载地 ...

  10. katalon系列十二:自动化上传文件、下载文件

    一.下载文件1.下载文件时,需要先设置好Chrome/Firefox下载路径.不弹出下载框等,大家先学习下在selenium下如何设置:https://www.cnblogs.com/fnng/p/7 ...

随机推荐

  1. python csv写入多列

    import csv import os def main(): current_dir = os.path.abspath('.') file_name = os.path.join(current ...

  2. 【前端必会】Prettier,有了ESlint,还要Prettier

    介绍 已经安装了ESLint为什么还要Prettier,主要是让ESLint专注于语法相关的验证,检查潜在问题.而代码格式化则有Prettier来接管 对比参考: https://baijiahao. ...

  3. 手把手教你玩转 Gitea|使用 Docker 安装 Gitea

    使用 Docker 安装 Gitea 的过程非常简单的,堪比"一键式"安装.Gitea 安装使用系列教程将会从多种方式进行全方位的实操演示. 视频演示中使用腾讯云实验环境安装 Do ...

  4. [题解] Codeforces 1548 C The Three Little Pigs 组合数学,生成函数

    题目 首先令\(x=i\)时的答案为\(f_i\) ,令\(f_i\)对应的普通生成函数为\(F(x)\). 很容易发现\(F(x)=\sum_{i=0}^n (1+x)^{3i}\),sigma是在 ...

  5. Docker安装MongoDB并使用Navicat连接

    MongoDB简介: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库 ...

  6. JUC(8)JMM

    文章目录 1.JMM 2.volatile 3.单例模式 1.JMM Volatile是java虚拟机提供轻量级的同步机制 1.保证可见性 2.不保证原子性 3.禁止指令重排 什么是JMM java内 ...

  7. Droplet——一款轻量的Golang应用层框架

    Github地址 如标题所描述的,Droplet 是一个 轻量 的 中间层框架,何为中间层呢? 通常来说,我们的程序(注意这里我们仅仅讨论程序的范围,而非作为一个系统,因此这里不设计如 LB.Gate ...

  8. iptables综合实验: 两个私有网络的互相通迅

    环境准备: 主机A IP:192.168.0.6/24 网关改为192.168.0.8 firewallA IP:eth1 192.168.0.8/24 eth0 10.0.0.8/24 删除默认路由 ...

  9. Java 编码那些事(一)

    编码 做Web的同学,最开始一定遇到过乱码问题,工作这么久,一定听说过Unicode, GB2312等编码.典型的记事本选择的四种选项:ANSI,Unicode,Unicode big endian, ...

  10. javascript异步编程,promise概念

    javascript 异步编程 概述 采用单线程模式工作的原因: 避免多线dom操作同步问题,javascript的执行环境中负责执行代码的线程只有一个 内容概要 同步模式和异步模式 事件循环和消息队 ...