Java+Playwright自动化-2-环境准备与搭建-基于Maven
1.简介
上一章中已经讲如何通过引入jar包来搭建Java+Playwright自动化测试环境,这一种是比较老的方法,说白了就是过时的老古董,但是我们必须了解和知道,其实maven搭建无非也就是下载引入相关的jar包,只不过相比之下是简单方便了,了解其本质可以帮助我们更好的学习maven搭建环境。如何通过引入maven来搭建Java+Playwright自动化测试环境。
Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,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节点的值改为我们在上边创建的仓库的目录并添加如下:
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/xxx版本
如下图所示:
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;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的很简单
相关文章:

Java+Playwright自动化-2-环境准备与搭建-基于Maven
1.简介 上一章中已经讲如何通过引入jar包来搭建JavaPlaywright自动化测试环境,这一种是比较老的方法,说白了就是过时的老古董,但是我们必须了解和知道,其实maven搭建无非也就是下载引入相关的jar包,只不过相比之下是简…...

由sigmod权重曲线存在锯齿的探索
深度学习的知识点,一般按照执行流程,有 网络层类型,归一化,激活函数,学习率,损失函数,优化器。如果是研究生上课学的应该系统一点,自学的话知识点一开始有点乱。 一、激活函数Sigmod…...

二、OpenCV图像处理-图像处理
目录 1、连通性 2、形态学操作 2.1腐蚀和膨胀 2.2开闭运算 2.3礼帽和黑帽 2.4总结 3、图像平滑 3.1图像噪声 3.2均值滤波 3.3高斯滤波 3.4中值滤波 3.5总结 4、直方图 4.1直方图的原理与显示 4.2掩膜的应用 4.3直方图均衡化 4.4自适应均衡化 4.5总结 5、边缘…...

UPS的工作原理和UPS系统中旁路的作用
UPS(不间断电源)根据工作原理和适用场景的不同,主要分为以下三种类型,每种类型的特点和适用场景如下: 1. 后备式UPS(Offline/Standby UPS) 工作原理: 正常供电时,负载直接…...

麒麟系统 Linux(aarch64处理器)系统java项目接入海康SDK问题
1. 麒麟系统部署海康摄像头时的 JNA 链接错误, 海康提供的jna sdk版本太低,需升级版本4.5及以上,把集成的Structure 替换成以下类 public class SDK_Structure extends Structure {protected List<String> getFieldOrder() {List<St…...
深入理解数组索引:原理、应用与优化
在编程中,数组是一种最基本且广泛使用的数据结构。而数组索引则是访问数组元素的关键机制。本文将深入探讨数组索引的原理、应用以及优化方法,帮助读者更好地理解和使用数组索引。 一、数组索引的基本原理 数组是一种线性数据结构,它将一组…...
【洛谷P9303题解】AC- [CCC 2023 J5] CCC Word Hunt
在CCC单词搜索游戏中,单词隐藏在一个字母网格中。目标是确定给定单词在网格中隐藏的次数。单词可以以直线或直角的方式排列。以下是详细的解题思路及代码实现: 传送门: https://www.luogu.com.cn/problem/P9303 解题思路 输入读取与初始化&…...

Python图片格式批量转换器教程
📚 前言 编程基础第一期《11-30》-- 在图像处理工作中,我们经常需要将大量图片从一种格式转换为另一种格式。本教程将介绍如何使用Python的Pillow库开发一个简单但功能强大的图片格式批量转换器,帮助你高效处理图片格式转换任务。 目录 &…...

从公开到私密:重新思考 Web3 的数据安全
去中心化存储是 Web3 的基石之一,使用户和应用能够在无需依赖中心化服务商的情况下存储数据。但自由也带来了一个重大挑战:数据安全。在一个无许可的世界中,如何确保用户文档、游戏资产或 AI 数据集等敏感内容是私密的、可控访问的࿰…...

计算机网络常见体系结构、分层必要性、分层设计思想以及专用术语介绍
计算机网络体系结构 从本此开始,我们就要开始介绍有关计算机网络体系结构的知识了。内容包括: 常见的计算机网络体系结构 计算机网络体系结构分层的必要性 计算机网络体系结构的设计思想 举例说明及专用术语 计算机网络体系结构是计算机网络课程中…...

接口自动化测试用例的编写方法
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 phpunit 接口自动化测试系列 Post接口自动化测试用例 Post方式的接口是上传接口,需要对接口头部进行封装,所以没有办法在浏览器下直接调…...
解决Docker存储空间不足问题
虚拟机磁盘扩展实战:解决Docker存储空间不足问题 问题背景 在虚拟机中运行的Linux系统上,Docker服务因根分区空间不足而无法正常运行。初始状态如下: [rootlocalhost ~]# df -h / 文件系统 容量 已用 可用 已用% 挂载点…...

基于SpringBoot的商家销售管理网站的设计与实现
湖南软件职业技术大学 本科毕业设计(论文) 设计(论文)题目 基于SpringBoot的商家销售管理网站的设计与实现 学生姓名 学生学号 所在学院 专业班级 校内指导教师 企业指导教师 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕…...
【数据集】高分辨率(1 km)月尺度中国气候(降水+最高/低温)数据集(1952–2019)
目录 数据描述🧩 输入数据⚙️ 数据处理流程一、ChinaClim_baseline(基准气候表面)二、ChinaClim_time-series(时序气候数据)📊 评估与验证方法📤 数据下载月最低气温月最高气温python绘制代码参考论文《1 km monthly precipitation and temperatures dataset for Ch…...

word中表格拉不动以及插入图片有间距
1、word中表格插入图片始终有间隙,怎么调表格高度和宽度都消除不了间隙,如下所示: 可以在表布局—单元格边距—修改上下左右边距为0即可 2、经过上述调整后左右没有间隔了,但图片上下有间隔,直觉是行距问题,…...
JavaSE:面向对象进阶之接口(Interface)
JavaSE 面向对象进阶之接口(Interface) 一、接口的核心概念 接口是一种完全抽象的类型,它定义了一组方法签名(契约),但不包含方法实现。接口的核心作用是: 规范行为:强制实现类遵…...

【Java学习笔记】接口
接口 应用场景引出 一、接口的介绍 1. 接口的基本结构 interface 接口名{属性抽象方法 }引出关键字:implements 2. 子类实现接口 class a implements 接口名{}3. 接口中的属性说明:属性默认是public static final修饰的 (1)f…...

代码随想录打卡|Day50 图论(拓扑排序精讲 、dijkstra(朴素版)精讲 )
图论part08 拓扑排序精讲 代码随想录讲解链接 题目链接 思路 在这个题目之中,个别文件的处理依赖于别的文件,因此,文件的处理顺序十分重要。我们用图来表示文件的处理顺序,文件s指向文件t,则说明如果要正确的处理文…...
Wan2.1 图生视频模型内部协作流程
Wan2.1 图生视频模型内部协作流程 flyfish Wan2.1作为一个多模态生成模型,其内部涉及多个子模型的协同工作。 1. 模型架构概览 Wan2.1主要由以下核心组件构成: 文本编码器:基于T5的文本理解模型,将prompt转换为语义向量图像编…...

SI24R05国产低功耗2.4GHz+125K低频唤醒SoC人员定位/畜牧业牛羊定位/资产管理定位方案芯片
目录 SI24R05简介功能框图 主要特性开发工具方案特性 SI24R05简介 Si24R05 是一款高度集成的低功耗 SOC 芯片,具有低功耗、Low Pin Count、 宽电压工作范围,集成了 13/14/15/16 位精度的 ADC、LVD、UART、SPI、I2C、TIMER、WUP、IWDG、RTC、无线收发器、…...
qt QAxWidget
QAxWidget 是 Qt 中用于嵌入 ActiveX 控件或 COM 对象的类,主要用于 Windows 平台。以下是其使用方法的详细步骤和示例: 1. 环境配置 在 .pro 文件中添加 axcontainer 模块: QT axcontainer2. 基本使用 创建控件实例 #include <QAxW…...
机器学习与深度学习04-逻辑回归02
目录 前文回顾6.正则化在逻辑回归中的作用7.特征工程是什么8.逻辑回归的预测结果如何9.什么是ROC曲线和AUC值10.如何处理类不平衡问题11.什么是交叉验证 前文回顾 上一篇文章地址:链接 6.正则化在逻辑回归中的作用 逻辑回归中,正则化是一种用于控制模…...
CQF预备知识:Python相关库 -- NumPy 基础知识 - 通用函数
文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。 通用函数 另请参阅 通用函数(ufunc) 通用函数(或简称 ufunc)是一种对 ndarrays 进行逐元素操…...

基于ELK的分布式日志实时分析与可视化系统设计
目录 一、ELK平台介绍 1.ELK概述 2.Elasticsearch 3.Logstash 4.Kibana 二、部署ES群集 1.资源清单 2.基本配置 3.安装Elasticsearch(elk1上、elk2上、elk3上) 4.安装logstash(elk1上) 5.Filebeat 6.安装Kibana&#x…...
@Async 注解 走的是主线程 还是子线程呢
Asyncz注解所在的包 package org.springframework.scheduling.annotation; Async 注解在Spring框架中用于标记一个方法为异步方法。当这个方法被调用时,它不会阻塞调用线程,而是会在一个单独的线程中执行。因此,Async 注解走的是子线程&…...
前端面经 React 组件常见的声明方式
react类组件和函数式组件 函数组件返回值的内容就是要渲染的内容 函数组件使用useState更新状态 ,使用类中变量更新 常见hook 官方 : useEffect 处理副作用,请求APIuseState 更新UIuseLayout 同步更新,会阻塞进程,…...

酒店管理系统设计与实现
本科毕业设计(论文) 设计(论文)题目 酒店管理系统设计与实现 学生姓名 学生学号 所在学院 专业班级 校内指导教师 李建 企业指导教师 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕业设计(论文)作品是本人在指导教师的指…...

OpenCV---pointPolygonTest
一、基本概念与用途 pointPolygonTest 是 OpenCV 中用于判断点与多边形关系的重要函数,常用于: 目标检测:判断像素点是否属于检测到的轮廓区域碰撞检测:检测物体是否重叠图像分割:确定点是否在分割区域内几何分析&am…...

Qt 的简单示例 -- 地址簿
这个工程里有两个窗口,都是QWidget派生的窗口 主窗口: 1. 运用了布局,按钮控件,单行编辑框,富文本编辑框等窗口部件; 2. 运用了 QMap 类; 3. 实现了点击按钮弹出子窗口的功能,这里子…...
Linux 下 C 语言实现工厂模式
Linux 下 C 语言实现工厂模式:设计理念与实战 🧠 一、工厂模式简介什么是工厂模式?C 语言实现设计模式的挑战 🏗️ 二、实现简单工厂模式(Simple Factory)1. 定义传感器接口(device.h࿰…...