// Cypress.Commands.add('login', (email, password) => { ... }); // 自定义命令,封装常用的 E2E 操作 Cypress.Commands.add('login', (username = 'admin', password = 'password') => { cy.visit('/login'); cy.get('input[name="username"]').type(username); cy.get('input[name="password"]').type(password); cy.get('button[type="submit"]').click(); cy.url().should('not.include', '/login'); }); Cypress.Commands.add('logout', () => { cy.get('.user-menu').click(); cy.contains('退出登录').click(); }); Cypress.Commands.add('waitForDashboardLoad', () => { cy.get('.dashboard-container', { timeout: 15000 }).should('be.visible'); cy.get('.loading-spinner').should('not.exist'); }); Cypress.Commands.add('createDevice', (deviceData) => { cy.visit('/devices'); cy.get('.add-device-btn').click(); cy.get('input[name="name"]').type(deviceData.name); cy.get('input[name="type"]').select(deviceData.type); cy.get('input[name="location"]').type(deviceData.location); cy.get('button[type="submit"]').click(); cy.contains('设备创建成功').should('be.visible'); }); Cypress.Commands.add('createPatrolTask', (taskData) => { cy.visit('/patrol/tasks'); cy.get('.create-task-btn').click(); cy.get('input[name="title"]').type(taskData.title); cy.get('textarea[name="description"]').type(taskData.description); cy.get('input[name="assignee"]').select(taskData.assignee); cy.get('button[type="submit"]').click(); cy.contains('任务创建成功').should('be.visible'); });