Plaswright测试失败:超过30000ms的测试超时:page.selectOption:Target Close



我正在尝试在我的React应用程序中做一个简单的测试,我想填写一个表格(由文本字段和选择组成(并提交这样的表格。

这是代码:

import { test, expect } from "@playwright/test";
test.describe("Navigate to page", () => {
test.beforeEach(async ({ page }) => {
await page.goto("/new-request");
});
test("Fill the form and submit", async ({ page }) => {
await page.selectOption("#phase-environment-select", "PRD");
await page.fill("#osr-title-textfield", "HELLO");
const titleFieldLocator = await page.locator("#osr-title-textfield");
const title = await titleFieldLocator.inputValue();
expect(title).toBe("HELLO");
const phaseFieldLocator = await page.locator("#phase-environment-select");
const phase = await phaseFieldLocator.inputValue();
expect(title).toBe("PRD");
});
});

它失败了,向我显示了以下信息:

1) [chromium] › create-db-osr.spec.ts:8:3 › Navigate to page › Fill the form and submit 
Test timeout of 30000ms exceeded.
page.selectOption: Target closed
=========================== logs ===========================
waiting for selector "#phase-environment-select"
============================================================
7 |
8 |   test("Fill the form and submit", async ({ page }) => {
>  9 |     await page.selectOption("#phase-environment-select", "PDT");
|                ^
10 |     await page.fill("#osr-title-textfield", "HELLO");
11 |
12 |     const osrTitleFieldLocator = await page.locator("#osr-title-textfield");
at /e2e/create-db-osr.spec.ts:9:16
Pending operations:
- page.selectOption at e2e/create-db-osr.spec.ts:9:16

我不明白是什么导致了这里的测试超时:;目标关闭";,或";等待选择器";?

夹具对象在测试之间不共享,因此在考虑并行执行场景的情况下,测试变得独立并按预期运行。

为了共享";页面";对象,它需要在更高的作用域级别(描述级别(上声明,并在测试之间的共享作用域(beforeAll(上启动。

代码:

const { test } = require('@playwright/test');
const { RequestPage } = require('./request-page');//importing page object

test.describe("Navigate to page", () => {
let requestPage;
test.beforeEach(async ({ page }) => {
requestPage = new RequestPage(page);
await requestPage.goto("/new-request");

});

test("Fill the form and submit", async ({  }) => {
await expect(requestPage).toHaveTitle(/PageTitle/);
await requestPage.selectOption("#phase-environment-select", "PRD");
await requestPage.fill("#osr-title-textfield", "HELLO");

const titleFieldLocator = await requestPage.locator("#osr-title-textfield");
const title = await titleFieldLocator.inputValue();
expect(title).toBe("HELLO");
const phaseFieldLocator = await requestPage.locator("#phase-environment-select");
const phase = await phaseFieldLocator.inputValue();
expect(title).toBe("PRD");
});
});

相关内容

最新更新