import { test, expect } from '@playwright/test'; import { APIHelper } from '../helpers/api-helper'; import { FormHelper } from '../helpers/form-helper'; import { TableHelper } from '../helpers/table-helper'; import { ScreenshotHelper } from '../helpers/screenshot-helper'; test.describe('测试辅助工具验证', () => { test('API辅助工具初始化验证', async ({ request }) => { const apiHelper = new APIHelper(request, 'https://api.example.com'); expect(apiHelper).toBeDefined(); apiHelper.setToken('test-token', 'Bearer'); expect(() => apiHelper.get('/test')).rejects.toThrow(); }); test('表单辅助工具初始化验证', async ({ page }) => { await page.setContent(`
`); const formHelper = new FormHelper(page, 'form#test-form'); formHelper.setFields([ { name: 'username', selector: 'input[name="username"]', type: 'text', required: true }, { name: 'email', selector: 'input[name="email"]', type: 'email', required: true }, { name: 'password', selector: 'input[name="password"]', type: 'password', required: true }, { name: 'gender', selector: 'select[name="gender"]', type: 'select', required: true }, { name: 'agree', selector: 'input[name="agree"]', type: 'checkbox', required: true } ]); await formHelper.waitForFormReady(); await formHelper.fillForm({ username: 'testuser', email: 'test@example.com', password: 'password123', gender: 'male', agree: true }); const formData = await formHelper.getFormData(); expect(formData.username).toBe('testuser'); expect(formData.email).toBe('test@example.com'); }); test('表格辅助工具初始化验证', async ({ page }) => { await page.setContent(`| ID | Name | |
|---|---|---|
| 1 | 张三 | zhangsan@example.com |
| 2 | 李四 | lisi@example.com |
这是一个测试页面
`); const screenshotHelper = new ScreenshotHelper(page); const screenshotPath = await screenshotHelper.captureViewport(); expect(screenshotPath).toBeDefined(); expect(screenshotPath.endsWith('.png')).toBe(true); const count = screenshotHelper.getScreenshotCount(); expect(count).toBe(1); }); test('表单验证功能验证', async ({ page }) => { await page.setContent(` `); const formHelper = new FormHelper(page, 'form#validation-form'); formHelper.setFields([ { name: 'username', selector: 'input[name="username"]', type: 'text', required: true }, { name: 'email', selector: 'input[name="email"]', type: 'email', required: true } ]); await formHelper.fillForm({ username: 'testuser', email: 'invalid-email' }); const validations = await formHelper.validate(); const emailValidation = validations.find(v => v.field === 'email'); expect(emailValidation?.valid).toBe(false); expect(emailValidation?.message).toBe('Invalid email format'); }); test('表格查找功能验证', async ({ page }) => { await page.setContent(`| ID | Name |
|---|---|
| 1 | 用户1 |
| 2 | 用户2 |
| 3 | 用户1 |