基于Playwright的巡检工具,如何解决登录问题?

系列文章目录

第一章 基于Testng + Playwright的H5自动化巡检工具
第二章 Playwright如何解决登录问题?



前言


一、前置步骤

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值