102 lines
3.5 KiB
Markdown
102 lines
3.5 KiB
Markdown
# Instructions
|
|
|
|
- Following Playwright test failed.
|
|
- Explain why, be concise, respect Playwright best practices.
|
|
- Provide a snippet of code with the fix, if possible.
|
|
|
|
# Test info
|
|
|
|
- Name: plugins.spec.ts >> 插件管理 >> 插件管理页面加载
|
|
- Location: e2e\plugins.spec.ts:4:3
|
|
|
|
# Error details
|
|
|
|
```
|
|
Error: expect(locator).toBeVisible() failed
|
|
|
|
Locator: locator('.ant-breadcrumb, .ant-page-header, h4').first()
|
|
Expected: visible
|
|
Timeout: 5000ms
|
|
Error: element(s) not found
|
|
|
|
Call log:
|
|
- Expect "toBeVisible" with timeout 5000ms
|
|
- waiting for locator('.ant-breadcrumb, .ant-page-header, h4').first()
|
|
|
|
```
|
|
|
|
# Page snapshot
|
|
|
|
```yaml
|
|
- generic [ref=e2]:
|
|
- link "跳转到主要内容" [ref=e3] [cursor=pointer]:
|
|
- /url: "#root"
|
|
- generic [ref=e4]:
|
|
- generic [ref=e8]:
|
|
- img "safety-certificate" [ref=e10]:
|
|
- img [ref=e11]
|
|
- heading "ERP Platform" [level=1] [ref=e13]
|
|
- paragraph [ref=e14]: 新一代模块化企业资源管理平台
|
|
- paragraph [ref=e15]: 身份权限 · 工作流引擎 · 消息中心 · 系统配置
|
|
- generic [ref=e16]:
|
|
- generic [ref=e17]:
|
|
- generic [ref=e18]: SaaS
|
|
- generic [ref=e19]: 多租户架构
|
|
- generic [ref=e20]:
|
|
- generic [ref=e21]: 可插拔
|
|
- generic [ref=e22]: 模块化设计
|
|
- generic [ref=e23]:
|
|
- generic [ref=e24]: 可扩展
|
|
- generic [ref=e25]: 事件驱动
|
|
- main [ref=e26]:
|
|
- generic [ref=e27]:
|
|
- heading "欢迎回来" [level=2] [ref=e28]
|
|
- paragraph [ref=e29]: 请登录您的账户以继续
|
|
- separator [ref=e30]
|
|
- generic [ref=e31]:
|
|
- generic [ref=e37]:
|
|
- img "user" [ref=e39]:
|
|
- img [ref=e40]
|
|
- textbox "用户名" [ref=e42]
|
|
- generic [ref=e48]:
|
|
- img "lock" [ref=e50]:
|
|
- img [ref=e51]
|
|
- textbox "密码" [ref=e53]
|
|
- img "eye-invisible" [ref=e55] [cursor=pointer]:
|
|
- img [ref=e56]
|
|
- button "登 录" [ref=e64] [cursor=pointer]:
|
|
- generic [ref=e65]: 登 录
|
|
- paragraph [ref=e67]: ERP Platform v0.1.0 · Powered by Rust + React
|
|
```
|
|
|
|
# Test source
|
|
|
|
```ts
|
|
1 | import { test, expect } from '@playwright/test';
|
|
2 |
|
|
3 | test.describe('插件管理', () => {
|
|
4 | test('插件管理页面加载', async ({ page }) => {
|
|
5 | await page.goto('/#/plugins/admin');
|
|
6 | // 页面标题(在面包屑中)
|
|
> 7 | await expect(page.locator('.ant-breadcrumb, .ant-page-header, h4').first()).toBeVisible();
|
|
| ^ Error: expect(locator).toBeVisible() failed
|
|
8 | // 上传插件按钮
|
|
9 | await expect(page.locator('button:has-text("上传插件")')).toBeVisible();
|
|
10 | // 刷新按钮
|
|
11 | await expect(page.locator('button:has-text("刷新")')).toBeVisible();
|
|
12 | // 表格列头
|
|
13 | await expect(page.locator('text=名称')).toBeVisible();
|
|
14 | await expect(page.locator('text=状态')).toBeVisible();
|
|
15 | });
|
|
16 |
|
|
17 | test('刷新按钮可点击', async ({ page }) => {
|
|
18 | await page.goto('/#/plugins/admin');
|
|
19 | const refreshBtn = page.locator('button:has-text("刷新")');
|
|
20 | await expect(refreshBtn).toBeEnabled();
|
|
21 | await refreshBtn.click();
|
|
22 | // 页面不应崩溃
|
|
23 | await expect(page.locator('button:has-text("上传插件")')).toBeVisible();
|
|
24 | });
|
|
25 | });
|
|
26 |
|
|
``` |