fix: update mobile menu tests to use mobile viewport

This commit is contained in:
张翔
2026-02-27 11:10:00 +08:00
parent b787c769ec
commit 0c7a7f5b05
4 changed files with 13 additions and 4 deletions
+5 -4
View File
@@ -35,8 +35,8 @@ export class HomePage extends BasePage {
this.contactSection = page.locator('#contact');
this.footer = page.locator('footer');
this.mobileMenuButton = page.locator('button[aria-label="打开菜单"]');
this.mobileMenu = page.locator('#mobile-menu-panel');
this.mobileMenuButton = page.locator('button[aria-label*="菜单"]');
this.mobileMenu = page.locator('#mobile-menu');
}
async goto(): Promise<void> {
@@ -69,16 +69,17 @@ export class HomePage extends BasePage {
}
async openMobileMenu(): Promise<void> {
await this.mobileMenuButton.waitFor({ state: 'visible', timeout: 5000 });
if (!(await this.mobileMenu.isVisible())) {
await this.mobileMenuButton.click();
await this.mobileMenu.waitFor({ state: 'visible' });
await this.mobileMenu.waitFor({ state: 'visible', timeout: 5000 });
}
}
async closeMobileMenu(): Promise<void> {
if (await this.mobileMenu.isVisible()) {
await this.mobileMenuButton.click();
await this.mobileMenu.waitFor({ state: 'hidden' });
await this.mobileMenu.waitFor({ state: 'hidden', timeout: 5000 });
}
}
@@ -84,6 +84,7 @@ test.describe('交互性能测试 @performance', () => {
test('移动端菜单打开应该快速', async ({ homePage, page }) => {
await homePage.goto();
await homePage.waitForPageLoad();
await homePage.page.setViewportSize({ width: 375, height: 667 });
const monitor = new PerformanceMonitor(page);
await monitor.startMonitoring();
@@ -101,6 +102,7 @@ test.describe('交互性能测试 @performance', () => {
test('移动端菜单关闭应该快速', async ({ homePage, page }) => {
await homePage.goto();
await homePage.waitForPageLoad();
await homePage.page.setViewportSize({ width: 375, height: 667 });
await homePage.openMobileMenu();
const monitor = new PerformanceMonitor(page);
@@ -59,6 +59,7 @@ test.describe('首页回归测试 @regression', () => {
});
test('应该能够打开和关闭移动端菜单', async ({ homePage }) => {
await homePage.page.setViewportSize({ width: 375, height: 667 });
await homePage.openMobileMenu();
await expect(homePage.mobileMenu).toBeVisible();
@@ -67,6 +68,7 @@ test.describe('首页回归测试 @regression', () => {
});
test('移动端菜单应该包含所有导航项', async ({ homePage }) => {
await homePage.page.setViewportSize({ width: 375, height: 667 });
await homePage.openMobileMenu();
const desktopNavItems = await homePage.getAllNavigationLabels();
const mobileNavItems = homePage.mobileMenu.locator('a');
@@ -76,6 +78,7 @@ test.describe('首页回归测试 @regression', () => {
});
test('应该能够通过移动端菜单导航', async ({ homePage }) => {
await homePage.page.setViewportSize({ width: 375, height: 667 });
await homePage.openMobileMenu();
const firstLink = homePage.mobileMenu.locator('a').first();
await firstLink.click();
@@ -44,15 +44,18 @@ test.describe('导航冒烟测试 @smoke', () => {
});
test('应该显示移动端菜单按钮', async ({ homePage }) => {
await homePage.page.setViewportSize({ width: 375, height: 667 });
await expect(homePage.mobileMenuButton).toBeVisible();
});
test('应该能够打开移动端菜单', async ({ homePage }) => {
await homePage.page.setViewportSize({ width: 375, height: 667 });
await homePage.openMobileMenu();
await expect(homePage.mobileMenu).toBeVisible();
});
test('应该能够关闭移动端菜单', async ({ homePage }) => {
await homePage.page.setViewportSize({ width: 375, height: 667 });
await homePage.openMobileMenu();
await homePage.closeMobileMenu();
await expect(homePage.mobileMenu).not.toBeVisible();