From 0c7a7f5b0545a66585b69bbce683a125095ee8de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Fri, 27 Feb 2026 11:10:00 +0800 Subject: [PATCH] fix: update mobile menu tests to use mobile viewport --- e2e/src/pages/HomePage.ts | 9 +++++---- .../tests/performance/interaction-performance.spec.ts | 2 ++ e2e/src/tests/regression/home-page.regression.spec.ts | 3 +++ e2e/src/tests/smoke/navigation.smoke.spec.ts | 3 +++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/e2e/src/pages/HomePage.ts b/e2e/src/pages/HomePage.ts index b2bca4e..a8bdccb 100644 --- a/e2e/src/pages/HomePage.ts +++ b/e2e/src/pages/HomePage.ts @@ -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 { @@ -69,16 +69,17 @@ export class HomePage extends BasePage { } async openMobileMenu(): Promise { + 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 { if (await this.mobileMenu.isVisible()) { await this.mobileMenuButton.click(); - await this.mobileMenu.waitFor({ state: 'hidden' }); + await this.mobileMenu.waitFor({ state: 'hidden', timeout: 5000 }); } } diff --git a/e2e/src/tests/performance/interaction-performance.spec.ts b/e2e/src/tests/performance/interaction-performance.spec.ts index 7a0a2a4..ca56897 100644 --- a/e2e/src/tests/performance/interaction-performance.spec.ts +++ b/e2e/src/tests/performance/interaction-performance.spec.ts @@ -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); diff --git a/e2e/src/tests/regression/home-page.regression.spec.ts b/e2e/src/tests/regression/home-page.regression.spec.ts index 0298fa2..819c2fe 100644 --- a/e2e/src/tests/regression/home-page.regression.spec.ts +++ b/e2e/src/tests/regression/home-page.regression.spec.ts @@ -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(); diff --git a/e2e/src/tests/smoke/navigation.smoke.spec.ts b/e2e/src/tests/smoke/navigation.smoke.spec.ts index ce4d693..906464c 100644 --- a/e2e/src/tests/smoke/navigation.smoke.spec.ts +++ b/e2e/src/tests/smoke/navigation.smoke.spec.ts @@ -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();