剧作家:ReferenceError:browserContext未定义

问题描述 投票:0回答:1

我正在

browserContext
挂钩中创建一个新的
beforeAll
,以清除
cookies
sessionStorage
localStorage
。这工作正常并且测试顺利通过。但是,我收到错误:
ReferenceError: browserContext is not defined
...

这是我的规格文件:

// 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();
  });
});

我不确定这里出了什么问题。我添加了屏幕截图以获得更好的上下文:

javascript automation hook e2e-testing playwright
1个回答
1
投票

我在 addInitScript 中看到额外的行,这可能是问题的原因。

browserContext.clearCookies()

让我们试试没有这个。

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

原因是浏览器无权访问在节点范围内运行的代码。

© www.soinside.com 2019 - 2024. All rights reserved.