4.0 KiB
4.0 KiB
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: tenant-isolation.spec.ts >> 多租户隔离 >> 侧边栏按模块分组显示
- Location: e2e\tenant-isolation.spec.ts:4:3
Error details
Error: expect(locator).toBeVisible() failed
Locator: locator('.ant-layout-sider').locator('text=基础模块')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for locator('.ant-layout-sider').locator('text=基础模块')
Page snapshot
- 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
1 | import { test, expect } from '@playwright/test';
2 |
3 | test.describe('多租户隔离', () => {
4 | test('侧边栏按模块分组显示', async ({ page }) => {
5 | await page.goto('/#/');
6 |
7 | // 验证侧边栏基础模块分组
8 | const sidebar = page.locator('.ant-layout-sider');
> 9 | await expect(sidebar.locator('text=基础模块')).toBeVisible();
| ^ Error: expect(locator).toBeVisible() failed
10 | await expect(sidebar.locator('text=业务模块')).toBeVisible();
11 | await expect(sidebar.locator('text=系统')).toBeVisible();
12 |
13 | // 验证关键菜单项存在
14 | await expect(sidebar.locator('text=工作台')).toBeVisible();
15 | await expect(sidebar.locator('text=用户管理')).toBeVisible();
16 | await expect(sidebar.locator('text=插件管理')).toBeVisible();
17 | });
18 |
19 | test('顶部导航栏显示用户信息', async ({ page }) => {
20 | await page.goto('/#/');
21 |
22 | // 验证顶部导航栏元素
23 | const header = page.locator('.ant-layout-header');
24 | await expect(header.locator('text=系统管理员')).toBeVisible();
25 | });
26 |
27 | test('页面间导航正常工作', async ({ page }) => {
28 | await page.goto('/#/');
29 |
30 | // 点击用户管理
31 | await page.locator('.ant-layout-sider').locator('text=用户管理').click();
32 | await expect(page).toHaveURL(/#\/users/);
33 |
34 | // 点击工作台返回
35 | await page.locator('.ant-layout-sider').locator('text=工作台').click();
36 | await expect(page).toHaveURL(/#\/$/);
37 | });
38 | });
39 |