| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import { Page, Locator, expect } from '@playwright/test';
- export class DashboardPage {
- readonly page: Page;
- readonly pageTitle: Locator;
- readonly activeUsersCard: Locator;
- readonly systemMessagesCard: Locator;
- readonly onlineUsersCard: Locator;
- readonly userManagementCard: Locator;
- readonly systemSettingsCard: Locator;
- constructor(page: Page) {
- this.page = page;
- this.pageTitle = page.getByRole('heading', { name: '仪表盘' });
- this.activeUsersCard = page.getByText('活跃用户');
- this.systemMessagesCard = page.getByText('系统消息');
- this.onlineUsersCard = page.getByText('在线用户');
- this.userManagementCard = page.getByText('用户管理');
- this.systemSettingsCard = page.getByText('系统设置');
- }
- async expectToBeVisible() {
- await expect(this.pageTitle).toBeVisible();
- await expect(this.activeUsersCard).toBeVisible();
- await expect(this.systemMessagesCard).toBeVisible();
- await expect(this.onlineUsersCard).toBeVisible();
- }
- async navigateToUserManagement() {
- await this.userManagementCard.click();
- await this.page.waitForLoadState('networkidle');
- }
- async navigateToSystemSettings() {
- await this.systemSettingsCard.click();
- await this.page.waitForLoadState('networkidle');
- }
- async getActiveUsersCount(): Promise<string> {
- return await this.activeUsersCard.locator('xpath=following-sibling::div//div[contains(@class, "text-2xl")]').textContent() || '';
- }
- async getSystemMessagesCount(): Promise<string> {
- return await this.systemMessagesCard.locator('xpath=following-sibling::div//div[contains(@class, "text-2xl")]').textContent() || '';
- }
- async logout() {
- // 查找并点击登出按钮
- const logoutButton = this.page.locator('button:has-text("登出"), button:has-text("退出"), button:has-text("Logout")');
- await logoutButton.click();
- await this.page.waitForLoadState('networkidle');
- }
- clone(newPage: Page): DashboardPage {
- return new DashboardPage(newPage);
- }
- }
|