《刚刚问世》系列初窥篇-Java+Playwright自动化测试-2-环境准备与搭建-基于Maven(详细教程)
1.简介
上一篇宏哥已经讲解和分享了如何通过引入jar包来搭建Java+Playwright自动化测试环境,这一种是比较老的方法,说白了就是过时的老古董,但是我们必须了解和知道,其实maven搭建无非也就是下载引入相关的jar包,只不过相比之下是简单方便了,了解其本质可以帮助我们更好的学习maven搭建环境。今天宏哥就来讲解和分享一下,如何通过引入maven来搭建Java+Playwright自动化测试环境。
Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。由于现在企业和公司中Java的大部分项目都是基于Maven, 而且也是比较流行、方便、简单的一种方式。因此宏哥为了照顾到企业或者公司用的java项目中用到maven的童鞋或者小伙伴们,这里也简单的介绍和分享一下。在Maven项目中使用Playwright非常简单。废话不多说,直接进入今天的主题。
2.在eclipse中搭建maven
2.1安装maven
1.下载maven的bin,在apache官方网站可以下载。在Files下面下载对应的maven版本(官网的是最新版本),如下图所示:

2.查看maven对应的JDK版本,如下图所示:

3.进入maven对应的JDK版本,网址:http://maven.apache.org/docs/history.html。如下图所示:
4.下载的apache-maven-3.8.1.zip不需要安装,只需解压即可,将apache-maven-3.8.1解压到E盘根目录下,放在你本地电脑磁盘空间比较充足的磁盘,宏哥放在E盘,并解压,如下图所示:

2.2配置maven环境变量
1.设置三个环境变量,我的电脑>选择“属性”->“高级系统设置”->“环境变量”->“系统变量”->“新建”
MAVEN_HOME : C:\apache-maven-3.3.9
MAVEN : %MAVEN_HOME%\bin
MAVEN_OPTS : -Xms256m -Xmx512m
如下图所示:

2.在path最前面加上: %MAVEN%; 。要特别注意这里的分号,其实环境变量配置和JDK的差不多。
2.3验证maven是否安装成功
1.Cmd->mvn -version,成功则出现以下界面,如下图所示:

3.maven配置仓库
maven的仓库可以分为三种,如下图所示:

3.1配置本地仓库
1.建立手动仓库maven_repository,宏哥建立在F盘,如下图所示:

2.给Maven添加本地仓库:
作用:构建Maven项目时,首先会从本地库查找资源,如果本地库没有,Maven就会从远程库下载资源到本地库,下次使用的时候就不用再去远程库下载了。
localRepository节点用于配置本地仓库,本地仓库其实起到了一个缓存的作用,它的默认地址是 C:\Users\用户名.m2。
当我们从maven中获取jar包的时候,maven首先会在本地仓库中查找,如果本地仓库有则返回;如果没有则从远程仓库中获取包,并在本地库中保存。此外,我们在maven项目中运行mvn install,项目将会自动打包并安装到本地仓库中。
在Maven的安装路径中的conf文件夹中配置settings.xml:
在文中找到localRepository注释行,localRepository节点默认是被注释掉的,需要把它移到注释之外,然后将localRepository节点的值改为我们在上边创建的仓库的目录并添加如下:
<localRepository>F:\maven_repository</localRepository>

3.2配置私服
给Maven配置mirror:mirror就是镜像, 主要提供一个方便地切换远程仓库地址的途径。在Maven的安装路径中的conf文件夹中配置settings.xml:在文中找到<mirrors>行并在其中添加如下:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

注: 千万注意, 只可配置一个(另一个要注释!) 不然两个可能发生冲突 ,导致jar包下不下来 !!!
mirror相当于拦截器,将对远程仓库的请求重定向到mirror指定的地址,如上面的代码将对central的请求重定向到http://maven.aliyun.com/nexus/content/groups/public/。
4.在eclipse中安装maven插件
1.打开Eclipse,进入help -- >Install New Software...点Add按钮输入:
Name:m2e
location:http://download.eclipse.org/technology/m2e/releases
如下图所示:

2.点击“OK”后,等相关应用下载好以后,选中点击“next”,如下图所示:

3.点击next直到安装完成。设置Maven插件所关联的Maven程序:选择Eclipse菜单栏的Window-->Preferences-->Maven--Installations菜单项, 点击add,如下图所示:

4.点击add,选择Maven的具体安装目录,如下图所示:

5.选择好目录,添加好maven的安装目录,如下图所示:

6.选中maven的安装目录,点击“OK”,如下图所示:

5.设置自定义的本地仓库
1.选择Eclipse菜单栏的Window-->Preferences-->Maven--UserSettings菜单项, 修改为我们自定义仓库位置下的settings.xml文件, 修改好后点击OK按钮。如下图所示:
6.查看是否maven设置成功
查看是否maven设置成功:file - new - other - maven ,出现maven project表示配置成功,如下图所示:

7.eclipse中新建maven项目
1.依次点击eclipse的file - new - other ,如下图所示:

2.在搜索框输入关键字“maven”,然后选中“maven project”,如下图所示:

3.选择创建后的工作区——项目存放的地址。如下图所示:

4.选择Maven项目的模板也叫项目类型(quikstart或者webapp等等),,如果选择create a simple project,则跳过了下面的步骤,也就不存在这个问题了,但是如果需要选择项目类型,则不能勾选create a simple project)如下图所示:

5.宏哥为了省事,直接选中create a simple project,点击next,输入Group Id和Artifact Id。如下图所示:

6.点击“Finish”,查看新建的maven项目,如下图所示:

到此,创建maven项目成功!!!
8.maven项目加载playwright依赖jar
8.1加载playwright依赖
maven项目加载playwright依赖就不想上一篇java项目加载playwright那么费事需要把jar包引入到项目下,maven项目只需要将相关的jar包依赖配置到pom.xml文件中就会自动加载了。因此要给上面创建的maven项目中加载playwright依赖jar包,只需在pom.xml中引入playwright的jar包即可;具体步骤如下:
1.查看maven仓库:http://mvnrepository.com/ 如下图所示:

2.搜索playwright, 输入playwright,点击“Search”,如下图所示:

3.点击“Playwright Main Library”,查看自己需要的playwright版本,playwright我们都会选择最新的(宏哥这里用1.40.0举例一下,最新可能有bug,老的可能有些方法不支持,宏哥这里选择一个不新也不旧的),如下图所示:

4.下载playwright-1.40.0版本,点1.40.0进入页面后,只需要单击下边的编码就自动全选复制了。如下图所示:

<!-- https://mvnrepository.com/artifact/com.microsoft.playwright/playwright -->
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>1.40.0</version>
</dependency>
5.copy到maven项目中的pom.xml中,如下图所示:

6.playwright的jar包maven会自动加载,从右边路径可以看到jar的路径在本地仓库。如下图所示:

需要其他的jar包只需配置到pom.xml中即可!是不是比之前介绍的方法简单多了哈!
8.2修改jdk版本
因为playwright的Java需要Java8以上,所以需要重新配置jdk。如下图所示:

1.右键JRE System Library[JavaSe-1.7] ->properties。如下图所示:

2.选择javaSE-1.8,如下图所示:

3.点击“OK”后,就变成JavaSE-1.8了,如下图所示:

好了,至此,基于maven的ava+Playwright自动化测试环境搭建就搭建成功了。
9.牛刀小试
上边已经介绍完环境的搭建,下边就仿照官方示例,写一个基本的入门代码看看环境是否搭建成功。
9.1代码设计

9.2参考代码
package com.bjhg.playwright; import com.microsoft.playwright.*;
import java.nio.file.Paths; /**
* @author 北京-宏哥
*
* @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)
*
* 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-2-环境准备与搭建-基于Maven(详细教程)
*
* 2024年6月30日
*/ public class Test_Playwright { public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
Browser browser = playwright.chromium().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());
}
} }
9.3运行代码
1.运行代码,右键Run AS,就可以看到控制台输出(会下载 Playwright 包并安装适用于 Chromium、Firefox 和 WebKit 的浏览器二进制文件,如果没有看到就是上一篇搭建已经下载了,需要删除文件,再次运行代码),如下图所示:

2.运行代码,控制台打印。如下图所示:

3.在代码根目录找到截图,如下图所示:

10.小结
1.必须先下载并安装JDK,配置JDK的环境变量JAVA_HOME,否则maven将无法使用。
2.eclipse安装maven插件后必须重新定位maven到本地maven目录。
3.宏哥带你看一下,是否将相关playwright的依赖下载到本地仓库(宏哥已经创建项目并运行了),如下图所示:

4.运行代码后,打开下载文件目录(下载 Playwright 包并安装适用于 Chromium、Firefox 和 WebKit 的浏览器二进制文件),如下图所示:

5.Eclipse开发工具创建的maven项目的左上角都有一个大写的蓝色M,如下图所示:

这一篇绝大多数主要就是关于maven的,后边关于playwright的很简单,有了上一篇的宏哥的各种填坑和基础,相信熟悉maven的小伙伴或者童鞋们应该就能快速的将环境搭建好了,而且结合上一篇和这一篇的相关知识,应该很快就理解学废了吧。
好了,今天就分享到这里!仅供大家学习和参考,今天时间不早了,又要和大家说再见了,感谢你耐心地听宏哥絮叨!!!
《刚刚问世》系列初窥篇-Java+Playwright自动化测试-2-环境准备与搭建-基于Maven(详细教程)的更多相关文章
- 《手把手教你》系列技巧篇(九)-java+ selenium自动化测试-元素定位大法之By name(详细教程)
1.简介 上一篇宏哥已经介绍了通过id来定位元素,今天继续介绍其他剩下的七种定位方法中的通过name来定位元素.本文来介绍Webdriver中元素定位方法之By name,顾名思义,就是我们想要定位的 ...
- 《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程)
1.简介 前边宏哥已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动三大浏览器.按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome.因此宏哥这里主要介绍一下如 ...
- 《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)
1.简介 从这篇文章开始,要介绍web自动化核心的内容,也是最困难的部分了,就是:定位元素,并去对定位到的元素进行一系列相关的操作.想要对元素进行操作,第一步,也是最重要的一步,就是要找到这个元素,如 ...
- 《手把手教你》系列技巧篇(二十七)-java+ selenium自动化测试- quit和close的区别(详解教程)
1.简介 尽管有的小伙伴或者童鞋们觉得很简单,不就是关闭退出浏览器,但是宏哥还是把两个方法的区别说一下,不然遇到坑后根本不会想到是这里的问题. 2.源码 本文介绍webdriver中关于浏览器退出操作 ...
- 《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)
1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某 ...
- 《手把手教你》系列技巧篇(三十)-java+ selenium自动化测试- Actions的相关操作下篇(详解教程)
1.简介 本文主要介绍两个在测试过程中可能会用到的功能:Actions类中的拖拽操作和Actions类中的划取字段操作.例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能. 2.拖拽操 ...
- 《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)
1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就 ...
- 《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来.今天宏哥就在这里把这种测试场景讲解和分享一下. 2.用法 创建一个执行 JS 的对象 ...
- 《手把手教你》系列基础篇(八十三)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-下篇(详解教程)
1.简介 其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下.报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果.失败点和失败原因.另一方面,日志记录对 ...
- 《手把手教你》系列技巧篇(三十七)-java+ selenium自动化测试-日历时间控件-上篇(详解教程)
1.简介 我们在实际工作中,有可能遇到有些web产品,网页上有一些时间选择,然后支持按照不同时间段范围去筛选数据.网页上日历控件一般,是一个文本输入框,鼠标点击,就会弹出日历界面,可以选择具体日期.这 ...
随机推荐
- 【转载】 5:0!AI战胜人类教官,AlphaDogfight大赛落幕
原文:https://baijiahao.baidu.com/s?id=1675621109599102721&wfr=spider&for=pc ------------------ ...
- 强化学习:AC算法中为什么不使用Q函数来表示优势函数
强化学习中的策略梯度法(PG)不直接使用Q函数作为值函数来进行计算已经在Sutton的PG公式证明中提出,主要作用就是减少方差,因此使用优势函数进行计算.作为PG算法类中最常见的AC类算法有着较多的使 ...
- Problem - 616C - Codeforces
Problem - 616C - Codeforces C. The Labyrinth 如果是直接对\(*\)去跑dfs或者bfs的话无疑是会超时的 既然如此,那我们可以去对 \(.\) 跑搜索,将 ...
- React 高德地图 进京证 路线规划 问题小记
一.加载问题 用高德地图做了个进京证路线规划的功能,官网也是有 React 代码示例.但是吧,这个Demo有问题,地图是能加载成功,但是其他功能再用 map 这个变量肯定不行,果不其然是null,处理 ...
- 一次生产环境mysql迁移操作(二)mysql空间释放(碎片整理)
一次生产环境mysql迁移操作(一)数据归档 一次生产环境mysql迁移操作(二)mysql空间释放(碎片整理) 上文中增加了定时归档,现在一些大表磁盘空间一直不释放,导致数据库文件越来越大.现在介绍 ...
- bazel 简介(一)—— 基础概念与原理
0x01 背景 bazel目前已广泛用于云计算领域的开源软件的构建如k8s.kubevirt等,本文以一个新手的角度分享下bazel的基础知识,其存在的价值.对比下,它与其他已经存在的构建系统的差别, ...
- 常用 DNS 查询速度测试
测试工具 DNS-Benchmark | GitHub 总结 进过多轮测试,我认为: 223.5.5.5 和 223.6.6.6 平均响应时间最短(223.5.5.5 在教育网内疑似无法连通) 114 ...
- exceptionless 在 windows 上 手动部署,非docker 详细步骤
关于exceptionless 是什么我就不多说了,能看到这篇文章的都知道了.网上几乎都是docker部署的,docker部署的确十分方便,但是有的人没有条件用docker,像我就不想花这个钱去多服务 ...
- Cookie的secure属性引起循环登录问题分析及解决方案
作者:来自 vivo 互联网服务器团队- Wang Fei 单点登录作为公共组件,在各个公司内部被各个系统所广泛使用,但是在使用过程中我们会遇到各种各样的问题,其中循环登录问题就是一个比较经典的问题. ...
- dotnet 学习 CPF 框架笔记 了解 X11 里如何获取触摸信息
本文记录我学习 CPF 框架的笔记,本文记录我阅读 CPF 框架,学习到了如何在 dotnet C# 里面获取到 X11 的触摸信息,获取到多指触摸以及触摸点的面积和触摸点压感等信息的方法 开始之前, ...