Cypress基础用例访问Reddit后终止:日志窗口保留及cy.wait失效咨询
问题1:测试意外终止后保持日志窗口打开
有两种实用方法:
- 用交互式模式运行测试:执行
cypress open打开Cypress可视化界面,手动点击测试用例启动运行。测试失败后窗口不会自动关闭,你可以直接在界面里查看完整日志和失败详情。 - 命令行运行时加
--no-exit参数:如果习惯用命令行执行cypress run,加上--no-exit参数(比如cypress run --no-exit),就算测试失败,进程也不会退出,日志窗口会保持打开状态。
问题2:cy.wait()未生效的原因
你的测试代码里有个核心错误,导致后续命令根本没机会执行:
cy.visit('www.reddit.com')没有加协议头(https://),Cypress会把这个路径当成相对路径,尝试访问当前测试服务器下的www.reddit.com,结果必然是404错误,测试在这一步就直接失败终止了,后面的cy.wait()、cy.log()都没运行,所以看起来wait没生效。
另外,就算补上协议头访问成功,要是cy.url().contains('reddit')断言失败,测试同样会终止,后续命令也不会执行。
修正后的测试代码参考:
/// <reference types="cypress" /> describe('My First Test', () => { it('Does not do much!', () => { expect(true).to.equal(true) cy.visit('https://www.reddit.com') // 补上https协议头 cy.url().contains('reddit') cy.wait(10000) cy.log("hello") cy.wait(10000) }) })
额外提醒:如果访问Reddit时遇到验证码、反爬机制导致测试失败,也会中断后续命令。这种情况可以临时在Cypress配置里启用experimentalModifyObstructiveThirdPartyCode: true来绕过部分反爬,但生产环境测试不建议长期这么用。
内容的提问来源于stack exchange,提问作者kame
相关产品推荐
相关产品推荐

