概述
登录部分网站的时候,往往需要登录。而每次服务重启,都需要重新登录,很麻烦。
下面是具体登录状态持久化的实现方式。
实现
import com.microsoft.playwright.*;import lombok.extern.slf4j.Slf4j;import java.nio.file.Path;import java.nio.file.Paths;/*** 测试登录状态的持久化保存*/@Slf4jpublic class TestSessionPersist {public void capture(String captureUrl) {try (Playwright playwright = Playwright.create()) {BrowserType chromium = playwright.chromium();Path userDataDir = Paths.get("d:/my");BrowserContext context = chromium.launchPersistentContext(userDataDir,new BrowserType.LaunchPersistentContextOptions().setHeadless(false).setDevtools(true).setSlowMo(50));Page page = context.newPage();page.navigate(captureUrl);//等待页面加载完成page.waitForLoadState();page.waitForTimeout(3000 * 1000);log.debug("over");}}public static void main(String[] args) {TestSessionPersist demo = new TestSessionPersist();demo.capture("https://youhui.pinduoduo.com/");}}
userDataDir请确保是一个空目录,在程序执行完毕后,会自动向其中写入很多文件,如下:
效果
第一次执行退出后,第二次再次执行,直接进入,不需要再次登录了。

