《刚刚问世》系列初窥篇-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 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
随机推荐
- Lua 学习笔记(自用)
Lua 学习笔记 1 语言基础 运行方式类似Python,可以直接在交互行运行,也可以通过解释器运行某个脚本.也可以在交互行运行某个lua脚本 dofile("hello.lua" ...
- Dinky实时计算平台
前言:Apache Flink 作为新一代的实时计算框架已经被应用到各个行业与领域,其岂存在着应用的痛点比如 FlinkSQL 在线IDE.作业提交不友好.作业无监控报警等.很大程度上说,FlinkS ...
- 如何阅读 Paper
前言 论文(Paper)通常是新技术.算法.编程方法或软件工具的首次公布.通过阅读论文,我们可以了解最新的技术进展,保持自己的技能和知识是最新的. 同时,论文提供了对特定主题深入理解的机会.它们通常包 ...
- blazor中的PageTitle输出keywords和description,自定义组件
在blazor的PageTitle中不具备输出keywords和description的功能,而如果直接使用<mate>标签,输出中文时会变成乱码,所以我给大家推介下面的代码解君愁: 1 ...
- 入门Semantic Kernel:OneApi集成与HelloWorld
引言 从这一章节开始正式进入我们的 Semantic Kernel 的学习之旅了. 什么是Semantic Kernel? Semantic Kernel是一个轻量级的开源框架,通过 Semantic ...
- centos7桌面版安装百度网盘
百度网盘官网下载Linux版本的软件 CentOS7的软件包格式为rpm # 安装依赖 yum -y install libXScrnSaver yum -y install libstdc++.so ...
- postgresql性能优化3:分区表
一.分区表产生的背景 随着使用时间的增加,数据库中的数据量也不断增加,因此数据库查询越来越慢. 加速数据库的方法很多,如添加特定的索引,将日志目录换到单独的磁盘分区,调整数据库引擎的参数等.这些方法都 ...
- 如何使用Splashtop在家里进行有效的新人入职培训
编辑搜图 请点击输入图片描述 今天的新闻有点不简单,不得了. 简而言之,利用Splashtop可以在家里进行有效的新人入职培训.最棒的地方就在于--两个用户可以远程访问同一台计算机,并且可以看到彼此的 ...
- java学习之旅(day.19)
多线程 线程简介 多任务:同时做多件事 进程(Process):在操作系统中运行的程序就是进程,如QQ,播放器,游戏. 线程(Thread):一个进程可以有多个线程,如视频中同时听声音,看弹幕,看图像 ...
- 深入解析LinkedHashMap
LinkedHashMap是HashMap的一个子类,保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的,也可以在构造时带参数,按照访问次序排序. ...