- 剧作家版本:v1.36.1
- 操作系统:Docker容器x64/aarch64
- 浏览器:WebKit
- 其他信息:
我们无法创建一个最小的示例。该应用程序是一个 next.js 应用程序,当我们获取组件子集并通过超时替换后端调用时,webkit 测试就通过了。
我可以提供一个存储库,其中包含合适的 Dockerfile、私有的测试环境以及来自 CI 的跟踪。
脚步
- 在本地运行测试
- 在 CI=true 的 docker 容器内运行测试
预期的
在 docker 中运行的测试应该产生与本地相同的结果。
实际的
Safari 非常不稳定。当在 playwright docker 容器内运行时,它会无休止地等待明显存在且每条痕迹看起来稳定的按钮。测试在 Chrome 和 Firefox 中运行良好。
桌面版 Safari 似乎比移动版更容易失败。对于桌面版本,生成的视频不会覆盖整个浏览器,这可能是一个提示。
附件是 Desktop Safari 运行之一的输出:
Test timeout of 30000ms exceeded.
Error: locator.click: Target closed
=========================== logs ===========================
waiting for getByRole('button', { name: 'Edit' })
============================================================
5 | await page.getByRole("button", { name: "Create a demo" }).click();
6 | await expect(page).toHaveURL(/\.[0-9a-z\-_]+/);
> 7 | await page.getByRole("button", { name: "Edit" }).click();
| ^
8 | const description = page.getByPlaceholder("Description");
9 | await description.click();
10 | await description.type("This is only a test!", { delay: 50 });
at /app/e2e/basic.spec.ts:7:52
Pending operations:
- locator.click at e2e/basic.spec.ts:7:52
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Test timeout of 30000ms exceeded.
Error: locator.click: Target closed
=========================== logs ===========================
waiting for getByRole('button', { name: 'Edit' })
============================================================
5 | await page.getByRole("button", { name: "Create a demo" }).click();
6 | await expect(page).toHaveURL(/\.[0-9a-z\-_]+/);
> 7 | await page.getByRole("button", { name: "Edit" }).click();
| ^
8 | const description = page.getByPlaceholder("Description");
9 | await description.click();
10 | await description.type("This is only a test!", { delay: 50 });
at /app/e2e/basic.spec.ts:7:52
Pending operations:
- locator.click at e2e/basic.spec.ts:7:52
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Test timeout of 30000ms exceeded.
Error: locator.click: Target closed
=========================== logs ===========================
waiting for getByRole('button', { name: 'Edit' })
============================================================
5 | await page.getByRole("button", { name: "Create a demo" }).click();
6 | await expect(page).toHaveURL(/\.[0-9a-z\-_]+/);
> 7 | await page.getByRole("button", { name: "Edit" }).click();
| ^
8 | const description = page.getByPlaceholder("Description");
9 | await description.click();
10 | await description.type("This is only a test!", { delay: 50 });
at /app/e2e/basic.spec.ts:7:52
Pending operations:
- locator.click at e2e/basic.spec.ts:7:52