微软自动化神器【Playwright】(六)之 模拟键盘操作

createh52个月前 (04-10)技术教程26

前言:

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

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

很久没更新这系列的文章了,那么我们将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);
}

效果如下:

image.png

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);
}

写在最后

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

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

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

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

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

我是测试君,关于后面文章的更新,我也会继续,更多请继续关注我!

相关文章

磁盘键盘鼠标设备管理

摘要设备控制器IO控制方式设备驱动程序存储系统IO分层设备控制器为什么需要设备控制器?电脑可以外接很多设备,如键盘、鼠标、硬盘、显示器、网卡等,每个设备的用法和功能不同,操作系统为了对这些输入输出设备...

【基础】JAVA的JDK安装使用(收藏)

本文介绍在工作中常用的技能功能,具体得参考最新软件为主,建议可以打开软件对比,具体功能得日常使用中常用才会牢记。一些常用技能,分享如下(后续继续分享):1、检查JDK是否已经配置环境变量(1)、检查J...

一秒钟变电脑高手 只会Ctrl+C已经OUT了

[中关村在线键鼠频道原创]在科技飞速发展的今天电脑已经不是什么稀罕之物了,反而是拥有一身熟练的电脑操作技能才更加拉风,对于非电脑专业的童鞋们来说,让他们学会Java、C语言这些高深的技能完全不现实,但...

Java System类详解

System 类位于 java.lang 包,代表当前 Java 程序的运行平台,系统级的很多属性和控制方法都放置在该类的内部。由于该类的构造方法是 private 的,所以无法创建该类的对象,也就是...

Java随机数之System/Random/SecureRandom详解

本系列为:从零开始学Java,为千锋资深Java教学老师独家创作致力于为大家讲解清晰Java学习相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【关注】持续追更~文末有本文重点总结...

Java中Scanner类的简单使用

Scanner是一个新的操作类,是在java.util包中提供的一个操作类,使用此类可以方便的完成输入流的输入操作。一个可以解析基本类型和字符串的简单文本扫描器。 例如,以下代码使用户能够从 Syst...