import { Page, expect } from '@playwright/test'; export class OperationLogPage { readonly page: Page; readonly searchInput; readonly searchButton; readonly table; readonly exportButton; constructor(page: Page) { this.page = page; this.searchInput = page.getByPlaceholder('搜索操作人或操作模块'); this.searchButton = page.getByRole('button', { name: '搜索' }); this.table = page.locator('.el-table'); this.exportButton = page.getByRole('button', { name: '导出' }); } async goto() { await this.page.goto('/oplog'); await this.page.waitForLoadState('networkidle'); } async searchByKeyword(keyword: string) { await this.searchInput.fill(keyword); await this.searchButton.click(); await this.page.waitForLoadState('networkidle'); } async clearSearch() { await this.searchInput.clear(); await this.searchButton.click(); await this.page.waitForLoadState('networkidle'); } async verifyTableContains(text: string) { await expect(this.table).toContainText(text); } async verifyTableNotContains(text: string) { await expect(this.table).not.toContainText(text); } async getTableRowCount() { const rows = await this.table.locator('.el-table__row').count(); return rows; } async exportData() { await this.exportButton.click(); } }