You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何停止Playwright中Before Hooks运行以保留手动登录状态?

解决Playwright测试刷新已登录页面的问题

Playwright默认会在每个测试执行前重置页面(比如导航到空白页或指定的baseURL),导致你手动登录的状态丢失。可以通过以下几种方式解决:

方法一:连接到已运行的浏览器实例

  1. 手动启动带调试端口的Playwright浏览器,执行命令:

    npx playwright open --remote-debugging-port=9222
    

    打开浏览器后手动完成Google登录,保持浏览器窗口不要关闭。

  2. 修改playwright.config.ts配置,让测试连接到这个已运行的浏览器:

    import { defineConfig } from '@playwright/test';
    
    export default defineConfig({
      use: {
        connectOptions: {
          wsEndpoint: 'ws://localhost:9222',
        },
        baseURL: undefined, // 禁止自动导航到指定URL
        headless: false,
      },
    });
    
  3. 修改测试用例,直接复用已打开的页面:

    import { test, expect } from '@playwright/test';
    
    test('搜索Apple', async ({ browser }) => {
      // 获取已登录的第一个标签页
      const pages = await browser.pages();
      const page = pages[0];
    
      await page.getByLabel('Search', { exact: true }).click();
      await page.getByLabel('Search', { exact: true }).fill('Apple');
      await page.getByRole('link', { name: 'Apple - Official Site apple.' }).click();
    });
    

方法二:使用持久化上下文保留登录状态

  1. 启动带持久化存储的浏览器,执行命令:

    npx playwright open --persistent-context ./my-persistent-profile
    

    在这个浏览器中完成手动登录,关闭浏览器后登录状态会保存在./my-persistent-profile目录中。

  2. 修改配置文件,让测试复用这个持久化上下文:

    import { defineConfig } from '@playwright/test';
    
    export default defineConfig({
      use: {
        persistentContextDir: './my-persistent-profile',
        baseURL: undefined, // 避免自动导航刷新页面
      },
    });
    
  3. 测试用例可以直接使用已保留登录状态的页面,无需修改原有代码(只要确保测试不主动刷新页面)。

方法三:禁用测试的自动页面重置

如果不想修改全局配置,可以在单个测试中禁用自动导航:

import { test, expect } from '@playwright/test';

// 针对当前测试禁用自动导航
test.use({ baseURL: undefined });

test('搜索Apple', async ({ page }) => {
  // 此时page不会被提前刷新,直接操作已登录的页面
  await page.getByLabel('Search', { exact: true }).click();
  await page.getByLabel('Search', { exact: true }).fill('Apple');
  await page.getByRole('link', { name: 'Apple - Official Site apple.' }).click();
});

内容的提问来源于stack exchange,提问作者Anurag Karthik Polamarasetty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:57:21