当前位置: 首页 > news >正文

《大话Java+playWright》系列教程初级篇-初识

后续代码会整理开源-大家期待吧!!!

首先讲下为啥不用python,因为不想下载各种安装插件,太麻烦了,好多不兼容。

所以选择了java。

先来讲下什么是playwright,playwright是微软开源自动化测试工具Playwright,支持主流浏览器,包括:CHnrome、Firefox、Safari等,同时支持以无头模式、有头模式运行,并提供了同步、异步的API,可以结合主流测试框架使用,并且支持浏览器端的自动化脚本录制等功能。

特点:
1、跨浏览器:Playwright支持所有现代渲染引擎,包括Chromhium、WebKit 和 Firefox ;跨平台:在Windows、Linux和MacOS 上进行本地或CI、无头或有头测试跨语言:在TypeScript、JavaScript、Python、.NET、Java 中使用 Playwright API
3、测试移动网络:适用于Android和MobileSafari的Googlle Chrome 原生移动仿真。相同的渲染引擎适用于您的桌面和云
端。
官网地址:
https://playwright.dev
GitHub地址:
https://github.com/microsoft/playwright
大白话:playwright就是一款主流的自动化测试工具,可以跨平台、跨语言、开源、支持分布式、拥有成熟的社区及学习文档,主要用于接口API测试和web自动化测试。

第一步新建maven项目

maven项目新增playWright如下:

POM.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.kingzzzz</groupId>
  <artifactId>examples</artifactId>
  <version>0.1-SNAPSHOT</version>
  <name>Playwright Client Examples</name>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>com.microsoft.playwright</groupId>
      <artifactId>playwright</artifactId>
      <version>1.49.0</version>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>
     
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

第二步,新建类,写第一个demo

package org.example;

import com.microsoft.playwright.*;

public class App {
    public static void main(String[] args) {
        try (Playwright playwright = Playwright.create()) {
            Browser browser = playwright.chromium().launch();
            Page page = browser.newPage();
            page.navigate("http://playwright.dev");
            System.out.println(page.title());
        }
    }
}

使用命令去编译程序,或者直接run main方法都可。

打印如下图第一个demo就成功了,大大家可以试试啦。

相关文章:

《大话Java+playWright》系列教程初级篇-初识

后续代码会整理开源-大家期待吧&#xff01;&#xff01;&#xff01; 首先讲下为啥不用python&#xff0c;因为不想下载各种安装插件&#xff0c;太麻烦了&#xff0c;好多不兼容。 所以选择了java。 先来讲下什么是playwright&#xff0c;playwright是微软开源自动化测试工…...

05.HTTPS的实现原理-HTTPS的握手流程(TLS1.2)

05.HTTPS的实现原理-HTTPS的握手流程&#xff08;TLS1.2&#xff09; 简介1. TLS握手过程概述2. TLS握手过程细化3. 主密钥&#xff08;对称密钥&#xff09;生成过程4. 密码规范变更 简介 主要讲述了混合加密流程完成后&#xff0c;客户端和服务器如何共同获得相同的对称密钥…...

提示词工程

一、六何分析法快速写出准确的提示词 英文单词中文解释提问时的思考示例Why何故问题的背景&#xff0c;包括为什么做及目标&#xff08;做成什么样&#xff09;最近我们要与某品牌合作推广冲牙器&#xff0c;对方需要我们策划一场营销活动What何事具体是什么事写一个营销策划方…...

基于python网络爬虫的搜索引擎设计

一、毕业设计&#xff08;论文&#xff09;题目&#xff1a;基于网络爬虫的搜索引擎设计 - 基于网络爬虫的搜索引擎设计1 二、毕业设计&#xff08;论文&#xff09;工作自 2022-09-01 起至 2022-10-28 止 三、毕业设计&#xff08;论文&#xff09;内容要求&#xff1a; 主…...

ip-协议

文章目录 1. 网络层2. ip协议2.1 ip协议格式2.2 网段划分基本概念网段划分的两种方式为什么要网段划分&#xff1f;特殊的IP地址IP地址数量不足 2.3 私有IP与公网IP2.4 路由 3. IP的分片与组装为什么要分片与组装&#xff1f;如何分片&#xff1f;如何组装&#xff1f; 1. 网络…...

Git(11)之log显示支持中文

Git(11)之log显示支持中文 Author&#xff1a;Once Day Date&#xff1a;2024年12月21日 漫漫长路有人对你微笑过嘛… 参考文档&#xff1a;GIT使用log命令显示中文乱码_gitlab的log在matlab里显示中文乱码-CSDN博客 全系列文章可查看专栏: Git使用记录_Once_day的博客-CSD…...

oneflow深度学习框架使用问题总结(Windows/Linux)

目录 1.简述 2.在Windows下使用Oneflow深度学习框架&#xff08;错误记录&#xff0c;谨慎&#xff0c;官方不支持&#xff0c;需要WSL&#xff09; 2.1安装Anaconda 2.1创建虚拟环境 2.2安装Pytorch 2.3安装Pycharm 2.4 安装Oneflow 3.在Linux下使用Oneflow深度学习框…...

论文研读:AnimateDiff—通过微调SD,用图片生成动画

1.概述 AnimateDiff 设计了3个模块来微调通用的文生图Stable Diffusion预训练模型, 以较低的消耗实现图片到动画生成。 论文名&#xff1a;AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning 三大模块&#xff1a; 视频域适应…...

SQLAlchemy示例(连接数据库插入表数据)

背景需求 连接数据库&#xff0c;插入表中一些数据。 其用户是新建用户&#xff0c;所以只能插入&#xff0c;不能更新。 再次输入数据则使用更新数据语法&#xff0c;这个没调试。 #! /usr/bin/env python # -*- coding: utf-8 -*-from sqlalchemy import create_engine, …...

Springboot3国际化

国际化实现步骤 Spring Boot 3 提供了强大的国际化支持&#xff0c;使得应用程序可以根据用户的语言和区域偏好适配不同的语言和地区需求。 添加国际化资源文件&#xff1a; 国际化资源文件通常放在 src/main/resources 目录下&#xff0c;并按照不同的语言和地区命名&#xf…...

阿尔萨斯(JVisualVM)JVM监控工具

文章目录 前言阿尔萨斯(JVisualVM)JVM监控工具1. 阿尔萨斯的功能2. JVisualVM启动3. 使用 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff…...

框架专题:反射

1. 什么是反射&#xff1f; 简单来说&#xff0c;反射是一种程序自省的能力&#xff0c;即在程序运行时动态地获取其结构信息或操作其行为。这包括类、方法、属性等元信息。反射的核心在于让代码变得更加动态化&#xff0c;从而突破静态语言的限制。 以Java为例&#xff0c;反…...

【Go】context标准库

文章目录 1. 概述1.1 什么是 Context1.2 设计原理1.3 使用场景源码分析核心:Context接口4个实现6个方法TODO 和 BackgroundWithCancelcancelpropagateCancel 绑定父对象WithTimeout 和 WithDeadlineWithValue总结参考1. 概述 基于版本: go1.22.3/src/context/context.go 1.1…...

LLMs之o3:《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读

LLMs之o3&#xff1a;《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读 导读&#xff1a;2024年12月&#xff0c;这篇论文提出了一种名为“审慎式对齐 (Deliberative Alignment)”的新方法&#xff0c;旨在提高大型语言模型 (LLM) 的安全性。论…...

git设置项目远程仓库指向github的一个仓库

要将你的Git项目设置为指向GitHub上的远程仓库&#xff0c;你需要执行以下步骤&#xff1a; 创建GitHub仓库&#xff1a; 登录到你的GitHub账户。点击右上角的 “” 号&#xff0c;选择 “New repository” 创建一个新的仓库。填写仓库的名称&#xff0c;可以添加描述&#xff…...

实战演练JDK的模块化机制

实战演练JDK的模块化机制--楼兰 带你聊最纯粹的Java ​ 你发任你发,我用Java8。你用的JDK到什么版本了?很多开源框架都已经开始陆续升级JDK版本了。你对于JDK8往后陆陆续续更新的这些版本有什么感觉吗? ​ 很多人会说其实并没有太多的感觉。JDK的新版本不断推出一些不痛不痒…...

jdk17+springboot3项目加密部署

最近项目需要在第三方服务器部署&#xff0c;由于没有交付源码。所以需要将项目加密后再部署。 网上找了一圈&#xff0c;发现xjar这个开源项目&#xff0c;可以将代码加密后进行部署。看了下正是我需要的。 于是按照文档打包加密&#xff0c;但启动的时候居然报错。 这个结…...

rm -rf 删除/下bin lib lib64 sbin软链接系统恢复

背景 不小心删除了/bin、/lib、/lib64和/sbin这些目录的软链接&#xff0c;导致系统中的各种命令都无法正常使用。在尝试多种方法后&#xff0c;包括添加环境变量和使用绝对路径执行命令无法恢复&#xff0c;最终不重装完美解决。 [rootcentos-8 /]# ll 总用量 36 drwxr-xr-x …...

并发与竞争

并发与竞争 并发与竞争的产生 Linux是一个多任务操作系统&#xff0c;肯定会存在多个任务共同操作同一段内存或者设备的情况&#xff0c;多个任务甚至中断都能访问的资源叫做共享资源&#xff0c;就和共享单车一样。在驱动开发中要注意对共享资源的保护&#xff0c;也就是要处…...

Java后端开发 ”Bug“ 分享——订单与优惠卷

“优惠券风波”&#xff1a;一段代码引发的线上事故 起因&#xff1a;优惠券功能上线 故事的开始源于公司新上线的一项促销活动——在用户未使用优惠券时&#xff0c;系统会自动赠送一张优惠券。这个功能不仅能提升用户体验&#xff0c;还能拉动平台的销售额。为了赶上活动上…...

Minimal Agent 能力与技术架构深度解析

&#x1f4d8; Minimal Agent 能力与技术架构深度解析 第一章&#xff1a;Minimal Agent 的定位与核心价值 Minimal Agent 是一个 “极简操作系统控制代理”&#xff0c;其设计哲学在于去繁就简、直达底层。它通过创新的双模式架构&#xff0c;将大语言模型的通用能力与操作系统…...

PinButtonEvents:嵌入式按钮事件处理框架深度解析

1. PinButtonEvents 库深度解析&#xff1a;面向嵌入式系统的高可靠性按钮事件处理框架在嵌入式系统开发中&#xff0c;按钮输入看似简单&#xff0c;实则暗藏诸多工程陷阱&#xff1a;机械触点抖动导致的误触发、长按与短按的语义混淆、双击/多击行为的时序判定、低功耗场景下…...

Fay数字人语音识别模型评估指标:如何选择最佳ASR方案

Fay数字人语音识别模型评估指标&#xff1a;如何选择最佳ASR方案 【免费下载链接】Fay fay是一个帮助数字人&#xff08;2.5d、3d、移动、pc、网页&#xff09;或大语言模型&#xff08;openai兼容、deepseek&#xff09;连通业务系统的agent框架。 项目地址: https://gitcod…...

别再死磕PI参数了!用MATLAB/Simulink手把手教你搭建永磁同步电机的内模控制器(附仿真模型)

永磁同步电机内模控制实战&#xff1a;从数学模型到Simulink仿真 在电机控制领域&#xff0c;PI控制器就像是一把瑞士军刀——简单实用但需要反复调试。当我在实际项目中遇到永磁同步电机(PMSM)参数变化大、耦合严重的问题时&#xff0c;传统PI控制的表现总是不尽如人意。直到尝…...

数据取证实战:Passware Kit Forensic 和 ElcomSoft 到底怎么选?附真实案例对比

数据取证工具深度评测&#xff1a;Passware Kit Forensic与ElcomSoft实战决策指南 当企业遭遇数据泄露或需要电子取证时&#xff0c;选对工具往往意味着调查成功与否的分水岭。Passware Kit Forensic和ElcomSoft作为行业两大标杆&#xff0c;常让专业人士陷入选择困境——它们都…...

01-第1章-概述与快速开始

第 1 章&#xff1a;概述与快速开始 1.1 sfsDb 简介 sfsDb 是一款专为工业物联网&#xff08;IIoT&#xff09;和边缘计算场景设计的纯 Go 语言嵌入式数据库。它基于 LevelDB 构建&#xff0c;提供了无锁事务系统、高效索引管理、时序数据处理和加密存储等功能。 核心特性 纯…...

如何利用Clef Handbook进行有效会议管理:5个关键原则 [特殊字符]

如何利用Clef Handbook进行有效会议管理&#xff1a;5个关键原则 &#x1f680; 【免费下载链接】handbook An employee handbook built for inclusion 项目地址: https://gitcode.com/gh_mirrors/handbook6/handbook 在当今快节奏的工作环境中&#xff0c;高效会议管理…...

多头注意力机制详解:如何提升模型表达能力并减少计算复杂度

多头注意力机制详解&#xff1a;如何提升模型表达能力并减少计算复杂度 在深度学习领域&#xff0c;注意力机制已经成为提升模型性能的关键技术之一。特别是多头注意力机制&#xff0c;它通过并行处理多个注意力头&#xff0c;不仅增强了模型捕捉不同特征子空间的能力&#xff…...

单轮车辆ABS防抱死控制Simulink仿真模型 1.可控制切换冰雪路面和开关ABS系统控制 2.仿真输出时域下的车速/轮速/制动距离/滑移率/控制信号曲线,可以配置车重/滑移率-摩擦系数曲线/主缸

单轮车辆ABS防抱死控制Simulink仿真模型 1.可控制切换冰雪路面和开关ABS系统控制 2.仿真输出时域下的车速/轮速/制动距离/滑移率/控制信号曲线&#xff0c;可以配置车重/滑移率-摩擦系数曲线/主缸压力/制动效能因数等参数。 3.有基础说明文档单轮车辆ABS防抱死控制Simulink仿真…...

幻兽帕鲁存档修复终极指南:告别数据丢失的完整解决方案

幻兽帕鲁存档修复终极指南&#xff1a;告别数据丢失的完整解决方案 【免费下载链接】palworld-host-save-fix Fixes the bug which forces a player to create a new character when they already have a save. Useful for migrating maps from co-op to dedicated servers and…...