概述

登录部分网站的时候,往往需要登录。而每次服务重启,都需要重新登录,很麻烦。
下面是具体登录状态持久化的实现方式。

实现

  1. import com.microsoft.playwright.*;
  2. import lombok.extern.slf4j.Slf4j;
  3. import java.nio.file.Path;
  4. import java.nio.file.Paths;
  5. /**
  6. * 测试登录状态的持久化保存
  7. */
  8. @Slf4j
  9. public class TestSessionPersist {
  10. public void capture(String captureUrl) {
  11. try (Playwright playwright = Playwright.create()) {
  12. BrowserType chromium = playwright.chromium();
  13. Path userDataDir = Paths.get("d:/my");
  14. BrowserContext context = chromium.launchPersistentContext(userDataDir,
  15. new BrowserType.LaunchPersistentContextOptions().setHeadless(false).setDevtools(true).setSlowMo(50));
  16. Page page = context.newPage();
  17. page.navigate(captureUrl);
  18. //等待页面加载完成
  19. page.waitForLoadState();
  20. page.waitForTimeout(3000 * 1000);
  21. log.debug("over");
  22. }
  23. }
  24. public static void main(String[] args) {
  25. TestSessionPersist demo = new TestSessionPersist();
  26. demo.capture("https://youhui.pinduoduo.com/");
  27. }
  28. }

userDataDir请确保是一个空目录,在程序执行完毕后,会自动向其中写入很多文件,如下: image.png

效果

第一次执行退出后,第二次再次执行,直接进入,不需要再次登录了。