import { test, expect } from '../../fixtures/base.fixture'; test.describe('导航冒烟测试 @smoke', () => { test.beforeEach(async ({ homePage }) => { await homePage.goto(); await homePage.waitForPageLoad(); }); test('应该显示主导航菜单', async ({ homePage }) => { await expect(homePage.navigation).toBeVisible(); }); test('应该显示Logo链接', async ({ homePage }) => { await expect(homePage.logo).toBeVisible(); const altText = await homePage.getLogoAltText(); expect(altText).toBeTruthy(); }); test('应该有导航项', async ({ homePage }) => { const navItems = await homePage.getNavigationItemCount(); expect(navItems).toBeGreaterThan(0); }); test('应该能够点击导航项', async ({ homePage }) => { const labels = await homePage.getAllNavigationLabels(); if (labels.length > 0) { await homePage.clickNavigationItem(labels[0]); await homePage.page.waitForTimeout(1000); } }); test('应该显示立即咨询按钮', async ({ homePage }) => { const contactButton = homePage.page.locator('a:has-text("立即咨询")').first(); await expect(contactButton).toBeVisible(); }); test('应该能够点击立即咨询按钮', async ({ homePage }) => { const contactButton = homePage.page.locator('a:has-text("立即咨询")').first(); await contactButton.click(); await homePage.page.waitForTimeout(2000); const url = homePage.page.url(); console.log('点击立即咨询后的URL:', url); expect(url).toContain('/contact'); }); 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(); }); test('应该有正确的导航标签', async ({ homePage }) => { const labels = await homePage.getAllNavigationLabels(); expect(labels.length).toBeGreaterThan(0); labels.forEach(label => { expect(label).toBeTruthy(); expect(label.length).toBeGreaterThan(0); }); }); test('应该能够滚动到各个区块', async ({ homePage }) => { const sections = ['services', 'products', 'cases', 'about', 'news', 'contact']; for (const sectionId of sections) { await homePage.scrollToSection(sectionId); const isVisible = await homePage.isSectionVisible(sectionId); expect(isVisible).toBe(true); } }); test('应该能够滚动到页面顶部', async ({ homePage }) => { await homePage.scrollToBottom(); await homePage.scrollToTop(); const scrollPosition = await homePage.page.evaluate(() => window.scrollY); expect(scrollPosition).toBe(0); }); test('应该能够滚动到页面底部', async ({ homePage }) => { await homePage.scrollToBottom(); const scrollPosition = await homePage.page.evaluate(() => window.scrollY); expect(scrollPosition).toBeGreaterThan(0); }); test('应该显示所有区块', async ({ homePage }) => { const sectionIds = await homePage.getAllSectionIds(); expect(sectionIds.length).toBeGreaterThan(0); sectionIds.forEach(sectionId => { expect(sectionId).toBeTruthy(); }); }); test('应该能够通过导航跳转到区块', async ({ homePage }) => { const labels = await homePage.getAllNavigationLabels(); if (labels.length > 1) { await homePage.clickNavigationItem(labels[1]); await homePage.page.waitForTimeout(1000); const url = homePage.page.url(); expect(url).toContain('#'); } }); test('应该显示页脚', async ({ homePage }) => { await homePage.scrollToBottom(); await expect(homePage.footer).toBeVisible(); }); test('应该有正确的页面标题', async ({ homePage }) => { const title = await homePage.getTitle(); expect(title).toBeTruthy(); expect(title.length).toBeGreaterThan(0); }); test('应该没有控制台错误', async ({ homePage, page }) => { const errors: string[] = []; page.on('console', msg => { if (msg.type() === 'error') { errors.push(msg.text()); } }); await homePage.waitForPageLoad(); expect(errors.length).toBe(0); }); });