我正在创建一个新的browserContext英寸beforeAll挂钩,以清除cookies,sessionStoragelocalStorage.这很好用&测试通过时没有任何问题.然而,我得到的错误是:ReferenceError: browserContext is not defined...

This is my spec file:

// tests/specs/login.spec.js
const { test, expect } = require('@playwright/test');
require('dotenv').config();

test.describe('Automates: CO-6367', () => {
  let browserContext, page;

  test.beforeEach(async ({ browser }) => {
    browserContext = await browser.newContext();
    page = await browserContext.newPage();

    await browserContext.addInitScript(() => {
      browserContext.clearCookies();
      localStorage.clear();
      sessionStorage.clear();
    });

    await page.goto(`${process.env.BASE_URL}/login`);
  });

  test.afterEach(async () => {
    await browserContext.close();
  });

  test('User logs into BO via URL with correct credentials', async () => {
    await page.fill('#email', process.env.BO_LOGIN_EMAIL);
    await page.fill('#password', process.env.BO_LOGIN_PASSWORD);
    await page.click('button[type="submit"]');
    await page.waitForURL('**/dashboards/main');
    const dashboardHeading = await page.locator('role=heading[name="Dashboard"]');
    await expect(dashboardHeading).toBeVisible();
  });
});

我不知道这有什么问题.我添加了一个屏幕截图以获得更好的上下文:

enter image description here

推荐答案

我在addInitScrip中看到额外的一行,这可能是问题的原因.

browserContext.clearCookies()

试试没有这个.

await browserContext.addInitScript(() => {
      localStorage.clear();
      sessionStorage.clear();
});

原因是浏览器无法访问在 node 作用域中运行的代码.

Javascript相关问答推荐

用相器进行向内碰撞检测

使用JavaScript单击上一个或下一个特定按钮创建卡滑动器以滑动单个卡

为什么ngModel不能在最后一个版本的Angular 17上工作?'

Msgraph用户邀请自定义邮箱模板

react—router v6:路由没有路径

有没有可能使滑动img动画以更快的速度连续?

如何从网站www.example.com获取表与Cheerio谷歌应用程序脚本

Prisma具有至少一个值的多对多关系

闭包是将值复制到内存的另一个位置吗?

查询参数中的JAVASCRIPT/REACT中的括号

如何在JAVASCRIPT中临时删除eventListener?

如何在FastAPI中为通过file:/URL加载的本地HTML文件启用CORS?

Reaction-SWR-无更新组件

try 将Redux工具包与MUI ToggleButtonGroup组件一起使用时出错

对具有相似属性的对象数组进行分组,并使用串连的值获得结果

本地损坏的Java脚本

未找到用于 Select 器的元素:in( puppeteer 师错误)

如何使用Reaction路由导航测试挂钩?

如何压缩图像并将其编码为文本?

如何在单击Search按钮时更新Reaction组件?