系列文章目录
第一章 基于Testng + Playwright的H5自动化巡检工具
第二章 Playwright如何解决登录问题?
文章目录
前言
- 之前开源的自动化巡检项目: H5自动化巡检项目(仓库地址: online-inspection-tracker)没有支持模拟登录功能,所以总有小伙伴来问:
如何巡检需要登录的H5页面呢
?但其实这是一个常见的需求。这篇文档就给大家介绍一下~ - 参考官方文档: Playwright for Java
一、前置步骤
1、引入playwright包
pom.xml中引入相关版本的jar包
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>1.48.0</version> <!-- 请替换为最新版本号 -->
</dependency>
2、初始化 Playwright 和浏览器
在 Java 代码中,首先初始化 Playwright 和浏览器实例。例如:
import com.microsoft.playwright.*;
public class CookieExample {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false));
// 其他配置可以在这里添加,如设置浏览器大小、是否打开开发者工具等
}
}
}
二、 关键步骤
1、创建Cookie对象
设置登录
所需要的token
// cookie1
Cookie cookie1= new Cookie("uid", XXX);
cookie1.setDomain(".yuming.com").setPath("/");
// cookie2 , 可设置登录需要的token等
Cookie cookie2= new Cookie("token", XXX);
cookie1.setDomain(".yuming.com").setPath("/");
2、转为List
List<Cookie> cookiesArr = Arrays.asList(cookie1, cookie2 );
3、数组转为JSON字符串
// json对象: {"cookies": cookiesArr }
JSONObject cookieObj= new JSONObject();
cookieObj.put("cookies", cookiesArr );
// 转为json字符串
Gson gson = new Gson();
cookieObjStr = gson.toJson(cookieObj);
4、创建页面上下文并保存cookies信息
关键API: browser.newContext().setStorageState(jsonStr)
pageContext = browser.newContext(new Browser.NewContextOptions()
// ...setUserAgent等
.setStorageState(cookieObjStr )
这样我们每次再用pageContext.newPage()
打开页面时,都会自动携带以上设置的cookie信息。
注意
:cookie 登录关键信息涉及到安全问题。token最好不要直接放到代码中,可放到数据库存储等其他方式
总结
在 Playwright for Java 中设置 Cookie 是一个相对简单的过程,但却有很大的用处!!
最后,欢迎一起迭代维护,记得 star~
项目开源地址:https://github.com/TheCoolQATeam/online-inspection-tracker