import { test, expect } from '@playwright/test' import { login, clickSubMenu, clickMenuItem, expectBasicList, closeMessageBox } from './utils/erpTestUtils' test.describe('生产领料单页面', () => { test('列表页基础测试', async ({ page }) => { await test.step('步骤1:登录系统', async () => { await login(page) }) await test.step('步骤2:导航到生产领料单页面', async () => { await clickSubMenu(page, '生产管理') await clickMenuItem(page, '/warehouse/issue') await expect(page).toHaveURL(/\/warehouse\/issue/) }) await test.step('步骤3:检查页面基本布局', async () => { await expectBasicList(page) await closeMessageBox(page) }) await test.step('步骤4:检查主要功能按钮', async () => { const buttons = ['新增', '导出', '搜索', '重置'] for (const btnName of buttons) { const btn = page.getByRole('button', { name: btnName }).first() if (await btn.count() > 0) { await expect(btn).toBeVisible() } } }) await test.step('步骤5:检查搜索表单', async () => { const searchForm = page.locator('.el-form').first() await expect(searchForm).toBeVisible() }) }) test('搜索功能测试', async ({ page }) => { await test.step('步骤1:登录系统并导航到生产领料单页面', async () => { await login(page) await clickSubMenu(page, '生产管理') await clickMenuItem(page, '/warehouse/issue') await closeMessageBox(page) }) await test.step('步骤2:点击搜索按钮', async () => { const searchBtn = page.getByRole('button', { name: /搜索|查询/ }).first() if (await searchBtn.count() > 0) { await searchBtn.click() await page.waitForTimeout(500) await closeMessageBox(page) } }) await test.step('步骤3:点击重置按钮', async () => { const resetBtn = page.getByRole('button', { name: /重置/ }).first() if (await resetBtn.count() > 0) { await resetBtn.click() await closeMessageBox(page) } }) }) test('新增生产领料单页面测试', async ({ page }) => { await test.step('步骤1:登录系统并导航到生产领料单页面', async () => { await login(page) await clickSubMenu(page, '生产管理') await clickMenuItem(page, '/warehouse/issue') await closeMessageBox(page) }) await test.step('步骤2:点击新增按钮', async () => { const addBtn = page.getByRole('button', { name: /新增|新建/ }).first() if (await addBtn.count() > 0 && await addBtn.isVisible()) { await addBtn.click() await page.waitForTimeout(1000) await closeMessageBox(page) } }) await test.step('步骤3:检查新增页面表单', async () => { const form = page.locator('.el-form').first() if (await form.count() > 0) { await expect(form).toBeVisible() } }) await test.step('步骤4:检查主要操作按钮', async () => { const actionButtons = ['保存', '提交', '删除', '返回'] for (const btnName of actionButtons) { const btn = page.getByRole('button', { name: btnName }).first() if (await btn.count() > 0) { await expect(btn).toBeVisible() } } }) await test.step('步骤5:返回列表页', async () => { await page.goBack() await page.waitForTimeout(500) await closeMessageBox(page) }) }) test('导出功能测试', async ({ page }) => { await test.step('步骤1:登录系统并导航到生产领料单页面', async () => { await login(page) await clickSubMenu(page, '生产管理') await clickMenuItem(page, '/warehouse/issue') await closeMessageBox(page) }) await test.step('步骤2:测试导出按钮', async () => { const exportBtn = page.getByRole('button', { name: /导出/ }).first() if (await exportBtn.count() > 0 && await exportBtn.isVisible()) { try { await exportBtn.click() await page.waitForTimeout(500) await closeMessageBox(page) } catch (e) { } } }) }) })