// cypress/support/e2e.ts // Import commands.js using ES2015 syntax: import './commands'; import './mock/index'; import './pageObjects/LoginPage'; import './pageObjects/MainPage'; import './pageObjects/WorklistPage'; // Alternatively you can use CommonJS syntax: // require('./commands') // require('./pageObjects/LoginPage') // 拦截浏览器 console 日志并输出到终端 // 使用 CDP (Chrome DevTools Protocol) 来监听 console 事件 // Cypress.on('window:before:load', (win) => { // // 保存原始的 console 方法 // const originalLog = win.console.log // const originalError = win.console.error // const originalWarn = win.console.warn // // 在 window 对象上创建日志缓冲区 // if (!win.__consoleLogs__) { // win.__consoleLogs__ = [] // } // // 重写 console.log - 存储到缓冲区 // win.console.log = function(...args: any[]) { // originalLog.apply(win.console, args) // const message = args.map(arg => // typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg) // ).join(' ') // win.__consoleLogs__.push({ type: 'log', message, timestamp: new Date().toISOString() }) // } // // 重写 console.error // win.console.error = function(...args: any[]) { // originalError.apply(win.console, args) // const message = args.map(arg => // typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg) // ).join(' ') // win.__consoleLogs__.push({ type: 'error', message, timestamp: new Date().toISOString() }) // } // // 重写 console.warn // win.console.warn = function(...args: any[]) { // originalWarn.apply(win.console, args) // const message = args.map(arg => // typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg) // ).join(' ') // win.__consoleLogs__.push({ type: 'warn', message, timestamp: new Date().toISOString() }) // } // }) // // 添加自定义命令来刷新日志到终端 // Cypress.Commands.add('flushConsoleLogs', () => { // cy.window({ log: false }).then((win: any) => { // if (win.__consoleLogs__ && win.__consoleLogs__.length > 0) { // const logs = win.__consoleLogs__.splice(0) // 清空缓冲区 // logs.forEach((log: any) => { // const prefix = log.type === 'error' ? '[ERROR] ' : log.type === 'warn' ? '[WARN] ' : '' // cy.task('browserLog', `${prefix}${log.message}`, { log: false }) // }) // } // }) // }) // // 自动在每个测试后刷新日志 // afterEach(() => { // cy.flushConsoleLogs() // })