diff --git a/e2e/pages/AdminUserPage.ts b/e2e/pages/AdminUserPage.ts index e41727d..df2e802 100644 --- a/e2e/pages/AdminUserPage.ts +++ b/e2e/pages/AdminUserPage.ts @@ -8,27 +8,37 @@ export interface UserData { } export class AdminUserPage { - constructor(private page: Page) {} + constructor(private page: Page) { } async goto() { await this.page.goto('/admin/users'); - await this.page.waitForLoadState('networkidle'); + await this.page.waitForLoadState('domcontentloaded'); + await this.page.waitForSelector('table', { timeout: 10000, state: 'visible' }); } async createUser(data: UserData) { - await this.page.click('button:has-text("新建用户")'); + await this.goto(); + + await this.page.waitForLoadState('domcontentloaded'); + await this.page.waitForTimeout(1000); + + const addButton = this.page.locator('button:has-text("添加用户")'); + await addButton.waitFor({ timeout: 10000, state: 'visible' }); + await addButton.click(); + + await this.page.waitForSelector('input[name="email"]', { timeout: 5000, state: 'visible' }); await this.page.fill('input[name="email"]', data.email); await this.page.fill('input[name="password"]', data.password); - + if (data.name) { await this.page.fill('input[name="name"]', data.name); } - + if (data.role) { await this.page.selectOption('select[name="role"]', data.role); } - - await this.page.click('button[type="submit"]'); + + await this.page.click('button:has-text("创建")'); } async expectUserInList(email: string) {