当前位置: 首页 > Web前端 > HTML5

关于Cypress的启动和cy.visit的调试

时间:2023-04-05 15:59:07 HTML5

npx是npm自带的命令行工具:在项目根目录下,使用命令行npxcypressopen启动:也可以使用yarn来start:yarnruncypressopen或者直接在node_modulesbin文件夹下执行二进制命令。这样就可以成功启动CypressLaunchpad了:在package.json中添加如下脚本:"scripts":{"cypress:open":"cypressopen"}然后使用如下命令启动即可:npmruncypress:opennpminstall安装完成后,在项目目录下有一个cypress\integration文件夹,里面有很多样例文件。每个测试都以空白状态开始,因此需要在beforeEach函数调用中对其进行初始化。为什么在执行此规范时可以使用cy?单步调试todo.spec.js,webpack://文件夹下:具体实现位置?为什么它在这个网址下?https://example.cypress.io/__cypress/runner/cypress_runner.jshttps://example.cypress.io/todo这是一个开发好的web应用:cy的方法都是泛型注入:记住这个文件名:cypress_runner.jsRunningQueue:Queueisanobject:Promise好像不是原生的Promise:如何查看cy.visit访问网站的具体动作?cy.visit将立即返回而不同步访问该网站:="selector-in-question"]')debugger//不起作用})这是Cypress统一处理动作的地方:action(eventName,...args){//标准化所有其他对象通信的各种方式intent//和'action'toCypressdebug(eventName);switch(eventName){case'recorder:frame':returnthis.emit('recorder:frame',args[0]);case'cypress:stop':returnthis.emit('stop');使用onBeforeLoad挂钩,我们可以在加载它之前将一些数据注入Web应用程序的主页:it('canmodifywindow._bootstrappedData',function(){//在这个解决方案中我们使用cy.visit({onBeforeLoad:...}//修改window._bootstrappedData全局,以便//它被传递到我们的App.start()方法constdata={env:'test',api:'https://test-api.company.com',}cy.visit('/bootstrap.html',{onBeforeLoad:(win)=>{win._bootstrappedData=data},})cy.get('pre').invoke('text').should('eq',JSON.stringify(数据))})})