首页 > 解决方案 > 当我使用 playwright 配置并且我想在 beforeAll 中声明 `page` 时如何设置 Playwright 以便我可以在同一规范中的多个测试中使用它

问题描述

这是我的剧作家配置文件的方式:

import { PlaywrightTestConfig } from '@playwright/test';

const config: PlaywrightTestConfig = {
  reporter: [
    ['list'],
  ],
  timeout: 30000,
  projects: [
    {
      testDir: `${process.cwd()}/qe/specs/e2e/`,
      testMatch: '*_spec.ts',
      name: 'Chrome Local',
      use: {
        viewport: { width: 900, height: 700 },
        launchOptions: {
          channel: 'chrome',
        },
        headless: false,
      },
    },
  ]}

这是我的规格文件:

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

const BASE_URL = process.env.URL || 'http://www.google.com';
let page: any;

test.describe('Main Block Test', () => {
  test.beforeAll(async ({ browser }) => {
  page = await browser.newPage();
 });

  test('Testing block 1', async ({ page }) => {
    await page.goto(BASE_URL);
    await page.waitForTimeout(2000);
  });
 test('Testing block 2', async ({ page }) => {
    await page.goto('www.google.com);
    await page.waitForTimeout(2000);
  });
});

这有点工作,但不尊重配置文件中设置的视口。我知道如果在每个test块中声明页面,那么它将是,但必须有更好的方法来做到这一点并且能够page在 beforeAll 中声明并使用它?任何帮助都会很棒。谢谢!

标签: playwright

解决方案


推荐阅读