《刚刚问世》系列初窥篇-Java+Playwright自动化测试-1-环境准备与搭建
1.简介
Python+Playwright系列的文章还没有结束,就有好的小伙伴或者童鞋们私信公众号留言,问宏哥什么时候出Java语言的Playwright的自动化测试文章。本来想趁热打铁将Python+Playwright完结后,就开始Java语言的Playwright的自动化测试文章,但是好多人私信留言,索性就两个系列的文章同时进行吧,还有一个原因就是许多小伙伴们或者童鞋们私信问宏哥什么时候可以有java版的Playwright,因为不会Python,或者现在大多数企业和公司还是把java奉在神坛上,所以宏哥打算就换个口味,介绍一下Java+Playwright自动化测试。大致和前边的Python+Playwright自动化测试差不多。基于Java和Playwright做自动化测试,俗话说:工欲善其事必先利其器;没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握Java基本的语法和一个IDE来进行开发,这里通过详细的讲解,介绍怎么搭建Java和Playwright开发环境,并提供一个基本入门的代码,后续逐步提供这一系列实践文章。
2.环境准备
2.1所需要安装的组件或者工具
1.宏哥的环境是Windows 10版本 64位系统(32位的同学自己想办法哦),如下图所示:
2.宏哥的Java版本为:1.8.0_181 (64位),如下图所示:
3.查看Java语言的Playwright的环境要求(还好宏哥的Java版本刚刚达标了,Java8新特性:简介 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Java 8 是oracle公司于2014年3月发布,有兴趣的自己查阅相关资料),如下图所示:
4.Eclipse开发工具,现在好多人已经用IntelliJ IDEA开发工具了,这个比较专业,宏哥这里就不做更多的介绍,完全看个人喜好。如下图所示:
5.PlayWright for Java(这里playwright就不需要考虑浏览器和driver的版本是否匹配,方便了好多,宏哥这里没有选择最新的和最老的jar包,最新的宏哥怕有bug,最老的宏哥怕有些方法不支持),如下图所示:
2.2JDK安装与配置
1.下载jdk包,小编的是64位1.8版本,其它高级版本应该也是可以的。根据自己的系统选择对应版本
2.一路傻瓜式安装,注意安装路径不要有空格,不要有中文。jdk和jre不要放在一个文件夹下
3.设置三个环境变量,我的电脑>选择“属性”->“高级”->“环境变量”->“系统变量”->“新建”
(1)JAVA_HOME----D:\software\Java\jdk1.8.0_181” (根据自己安装路径填写),如下图所示:

(2)CLASSPATH--- .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; ,如下图所示:

(3)PATH-----;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
在path路径下加上面那两个,这里就不多说了
4.打开cmd验证是否安装成功,输入java -version,然后输入javac 。能显示版本号和下面的帮助信息说明安装成功,如下图所示:
2.3Eclipse的安装与设置
关于Eclipse的下载和设置,请参考宏哥的一篇文章:传送门。
2.4下载Playwright相关包和工具
Playwright下载的官网是:https://mvnrepository.com/artifact/com.microsoft.playwright,访问如下图所示:
2.4.1下载相关jar包
1.点击下图中的"Playwright Main Library”,如下图所示
2.点击下图中的1.40.0链接触发下载 playwright-1.40.0.jar,如下图所示:
3.点击“Jar”,就开始下载jar包了,如下图所示:
按照上边的方法下载相同版本的前边三个Jar包,第四个是用于断言的后期如果代码中要断言,也需要下载引入项目中,如下图所示:
3.搭建环境
Java+Playwright自动化测试的搭建环境方法很简单,总结成一句话:下载Jar包,引入Jar包即可!下边听宏哥给你慢慢道来。
添加3个jar包即可。如果需要断言需要添加4个jar包。这个方法比较简单是首选也是宏哥推荐的方法。
3.1项目引入jar包
1.下载playwright-1.40.0.jar 。下载地址也在:官方下载地址:https://mvnrepository.com/artifact/com.microsoft.playwright/playwright 如果官方地址无法访问自己可以网上搜一下应该可以 轻松的下载到,如果实在找不到可以微信搜索“北京宏哥”公众号,关注宏哥以后进入公众号发送“jar包”来获取下载方法。
(1)点击下图中的1.40.0链接触发下载 playwright-1.40.0.jar,如下图所示:
(2)点击“Jar”,就开始下载jar包了,如下图所示:
2.将 playwright-1.40.0.jar 添加到java项目中就可以了,如下图所示:
3.最后将Playwright的Jar包成功引入宏哥新建的java project(bjhg_playwright)项目中,如下图所示:
4.按照上边的方法引入其他playwright相关的jar包,如下图所示:
全部引入后,到此,环境就搭建好了,是不是很简单哈,是不是so easy。
4.牛刀小试
上边已经介绍完环境的搭建,下边就仿照官方示例,写一个基本的入门代码看看环境是否搭建成功。
4.1代码设计
4.2参考代码
package bjhg_playwright; import com.microsoft.playwright.*;
import java.nio.file.Paths; /**
* @author 北京-宏哥
*
* @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)
*
* 《最新出炉》系列初窥篇-Java+Playwright自动化测试-1-环境准备与搭建
*
* 2024年6月29日
*/ public class Test_Playwright { public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
Browser browser = playwright.webkit().launch();
Page page = browser.newPage();
page.navigate("https://www.baidu.com/");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("example.png")));
System.out.println(page.title());
}
} }
4.3运行代码
1.运行代码,右键Run AS,就可以看到控制台输出,如下图所示:
2.运行代码,控制台打印。如下图所示:
3.在代码根目录找到截图,如下图所示:
5.小结
1.细心的小伙伴或者童鞋们会发现前边宏哥的截图只有一个jar包,宏哥之前认为引入一个jar包即可,没有想到完整项目竟然需要4个jar包,一开始宏哥引入一个jar包,运行代码就报错某某个方法没有找到,报空指针的错误,然后宏哥查阅资料,于是引入第二jar包,没有想到运行代码,还是同样错误。宏哥奇了怪了,难道playwright不能用这种引入jar包的方式搭建环境,只能采用maven的方式搭建环境吗?宏哥觉得不可能啊,只要maven方式可以,这种一定也可以。然后刚好周末休息了一下,下午午休完,宏哥突然意思到为啥在官网的首页放了四个jar包,分明就是需要把四个jar全部都引入项目中才可以搭建成功,然后宏哥抱着试一下心态,没有想到引入后,运行代码居然稍等一会,宏哥以为又要失败了,没有想到出现如下图所示界面,成功下载 Playwright 包并安装适用于 Chromium、Firefox 和 WebKit 的浏览器二进制文件,如下图所示:
2.然后宏哥回过头来再官网内容,确实是需要引入4个jar包,一开始着急搭建环境又是英文的宏哥就大致瞥了一眼,觉得引入一个就可以搭建环境成功,开始也怀疑为啥展示4个jar包的图片链接,这次宏哥知道了,果然心急吃不了热豆腐啊!以下是宏哥用浏览器自带的翻译功能翻译的官网页面,虽然有点蹩脚,但是凑合能看,人家清楚的描述了每一个jar包的功能作用,只怪宏哥太年轻没有去细细地看才有了后续的一系列麻烦事。
3.宏哥以为到此就大功告成了,万万没有想到,代码运行到最后又给了宏哥当头一棒,哈哈,又报错了,真正的是服气了,好多坑啊!估计宏哥是第一个用这种方法搭建环境,并且第一个填坑的人,还是没有找到相关的方法报错,如下图所示:
4.没有办法了,遇到问题就解决呗,幸好周末没有事时间就充裕,开始一看到Google,宏哥猜测可能是外网有限制访问不到这个方法吗?但是,用到的方法宏哥都通过jar包引入了,不可能再去访问外网去,这么一想就排除了这一想法。然后宏哥就去官网查找,随心所欲的点击查找,偶然发现有一个项目中引入的jar包好像依赖另一个jar包,刚好报错和这个依赖的jar包相似,宏哥就抱着试一试的心态,下载依赖的jar包,引入jar包,然后运行代码最后成功了,哈哈!到此才是真正的大功告成啊,真的是惊喜不断,刺激连连啊!还是用maven搭建方便,啥都不需要管,只要引入就会自动下载你需要的jar包(当然有外网限制,需要换成国内镜像)。下边看看那个依赖的jar包,如下图所示:
5.最后将其引入项目中,如下图所示:
6.运行代码,控制台成功打印并截图,如下图所示:
关于Java+Playwright的环境搭建,宏哥就分享到这里,其实还有别的方法可以实现,宏哥这里只不过列举了最笨的方法,总结一句话,就是添加4个jar包,其实也很简单了。仅大家学习和参考。好了,时间不早了,今天就分享到这里!感谢您耐心的阅读。宏哥下一篇讲解和分享如何用maven搭建Java+Playwright搭建环境,想必就不会遇到这么多坑了吧。最后建议将这一篇文章从后往前看,不然就可能会跟随宏哥脚步一路踩坑过来哦!
《刚刚问世》系列初窥篇-Java+Playwright自动化测试-1-环境准备与搭建的更多相关文章
- 《手把手教你》系列基础篇之(一)-java+ selenium自动化测试-环境搭建(上)(详细教程)
1.简介 jmeter系列的文章结束,本来想趁热打铁顺别将Jmeter和接口测试介绍一下,但是感觉Jmeter时间太长了怕大家吃腻了,还有一个原因就是许多小伙伴们或者童鞋们私信问宏哥什么时候可以有ja ...
- SpringBoot系列教程web篇之全局异常处理
当我们的后端应用出现异常时,通常会将异常状况包装之后再返回给调用方或者前端,在实际的项目中,不可能对每一个地方都做好异常处理,再优雅的代码也可能抛出异常,那么在 Spring 项目中,可以怎样优雅的处 ...
- Java发送邮件初窥
一.背景 最近朋友的公司有用到这个功能,之前对这一块也不是很熟悉,就和他一起解决出现的异常的同时,也初窥一下使用Apache Common Email组件进行邮件发送. 二.Java发送邮件的注意事项 ...
- Flutter 即学即用系列博客——04 Flutter UI 初窥
前面三篇可以算是一个小小的里程碑. 主要是介绍了 Flutter 环境的搭建.如何创建 Flutter 项目以及如何在旧有 Android 项目引入 Flutter. 这一篇我们来学习下 Flutte ...
- 《手把手教你》系列技巧篇(六)-java+ selenium自动化测试-阅读selenium源码(详细教程)
1.简介 前面几篇基础系列文章,足够你迈进了Selenium门槛,再不济你也至少知道如何写你第一个基于Java的Selenium自动化测试脚本.接下来宏哥介绍Selenium技巧篇,主要是介绍一些常用 ...
- Spark系列-初体验(数据准备篇)
Spark系列-初体验(数据准备篇) Spark系列-核心概念 在Spark体验开始前需要准备环境和数据,环境的准备可以自己按照Spark官方文档安装.笔者选择使用CDH集群安装,可以参考笔者之前的文 ...
- 死磕 java同步系列之终结篇
简介 同步系列到此就结束了,本篇文章对同步系列做一个总结. 脑图 下面是关于同步系列的一份脑图,列举了主要的知识点和问题点,看过本系列文章的同学可以根据脑图自行回顾所学的内容,也可以作为面试前的准备. ...
- java高并发系列 - 第26篇:学会使用JUC中常见的集合,常看看!
这是java高并发系列第26篇文章. 环境:jdk1.8. 本文内容 了解JUC常见集合,学会使用 ConcurrentHashMap ConcurrentSkipListMap Concurrent ...
- Java9系列第7篇:Java.util.Optional优化与增强
我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还是有很多的特性值得关注.期待您能关注我,我将把java 9 ...
- 《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
随机推荐
- 深入剖析:如何使用Pulsar和Arthas高效排查消息队列延迟问题
背景 前两天收到业务反馈有一个 topic 的分区消息堆积了: 根据之前的经验来看,要么是业务消费逻辑出现问题导致消费过慢,当然也有小概率是消息队列的 Bug(我们使用的是 pulsar). 排查 通 ...
- Surge DHCP设置
关于DNS配置 对于中国用户,推荐的 DNS 配置如下: 如果经常使用的网络没有 DNS 劫持问题:配置为使用系统 DNS 配置并追加 223.5.5.5 和 114.114.114.114 作为冗余 ...
- Go语言的包(package)
包名是从$GOPATH/src/后开始计算的,使用/进行路径分隔. 想要被别的包调用标识符都要的首字母大. 单行导入和多行导入. 导入包不想使用内部的标识符,需要使用匿名导入. 每个包导入的时候会自动 ...
- Vben-admin---ApiSelect Invalid prop: type check failed for prop "onUpdate:value". Expected Function, got Array
在basicFrom组件里添加一个ApiSelect, <template #localSearch="{ model, field }"> <ApiSelect ...
- DP-Modeler软件初步教程1:数据文件导入
1.导入航拍影像的空三文件 先打开DPSlnManager.exe软件,DP数据管理是用这个软件来操作的. 先从CC中导出空间文件,XML格式和无损影像.然后导入到DP 2.从CC中导出OSGB,然 ...
- Java面试题:@PostConstruct、init-method和afterPropertiesSet执行顺序?
在Spring框架中,@PostConstruct注解.init-method属性.以及afterPropertiesSet()方法通常用于初始化Bean的逻辑.它们都提供了在Bean创建和初始化完成 ...
- C 语言编程 — 高级数据类型 — 共用体
目录 文章目录 目录 前文列表 共用体 定义共用体 访问共用体成员 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C 语言编程 - 基本 ...
- 守护安全|AIRIOT城市天然气综合管理解决方案
城市使用天然气存在安全风险和隐患,天然气管理的复杂性也比较高,依靠传统人工难以发现安全漏洞,特别是在燃气场站.管网的安全监管等方面,场站面临作业管理.区域管控等问题,管线存在第三方施工发现问题不及 ...
- Three加载3D模型贴图
Three加载3D模型贴图 准备阶段 3D模型 three 库文件 纹理图片 相关资料 官方开发文档: https://threejs.org/docs 官网编辑3D模型:https://threej ...
- 推荐一款模拟浏览器自动化操作神器!Mechanize
大家好,我是狂师! 今天给大家推荐一款用于模拟浏览器行为以进行网页自动化操作Python库:Mechanize. 1.介绍 Mechanize是Python中的一个库,它被设计用来自动化网页浏览和数据 ...