当我试图使用 Cypress 对 SAP 官网进行自动化操作时,遇到如下的错误消息:

The following error originated from your application code, not from Cypress.

top.$ is not a function

When Cypress detects uncaught errors originating from your application it will automatically fail the current test.

This behavior is configurable, and you can choose to turn this off by listening to the uncaught:exception event.

大意是,top.$ is not a function 这条错误消息,是 SAP 官网 www.sap.com 报出来的,而非 Cypress 本身。对于此类情况,一种选择是,我们可以在 Cypress 测试代码里通过异常捕获的方式,来忽略此类应用异常。

On a technical note, Cypress considers uncaught exceptions to be any error that is uncaught by your application, whether they are “standard” errors or unhandled promise rejections. If the error triggers the window’s global error handler or its unhandledrejection handler, Cypress will detect it and fail the test.

需要强调的是,如果应用程序抛出的异常,最终触发了 windows 全局错误处理器( global error handler ) 或者其 unhandledrejection handler,则 Cypress 同样会监测到此情况,并且以失败状态终止其测试。

在 Cypress 里禁掉应用程序错误消息的完整代码:

/// <reference types="Cypress" />describe('My First Test', () => {it('finds the content "type"', () => {cy.visit('https://www.sap.com');cy.url().should('include', 'index.html');/*cy.contains('type').click();cy.url().should('include', '/commands/actions');cy.get('.action-email').type('jerry@email.com').should('have.value', 'jerry@email.com');*/});});Cypress.on('uncaught:exception', (err, runnable) => {// returning false here prevents Cypress from// failing the testconsole.log('Jerry errors!');return false})

最后的效果:

SAP 官网 web page 报出的错误消息,并不会影响 Cypress 测试的继续执行:

更多Jerry的原创文章,尽在:“汪子熙”:

如何在 Cypress 测试代码中屏蔽(Suppress)来自应用代码报出的错误消息相关推荐

  1. 在 WinCC V7.4、V7.5 中启动图形编辑器时,会得到错误消息“内存不足”,无法再关闭项目

    在 WinCC V7.4.V7.5 中启动图形编辑器时,会得到错误消息"内存不足",无法再关闭项目. 1.这个错误消息的原因是 WScripts 文件夹中的 Dynwiz.cwd ...

  2. 如何在Word文档中粘贴有行号的代码

    我们如何在Word文档中粘贴的代码像下图所示: 第一步:进入网站:http://www.planetb.ca/syntax-highlight-word 第二步:将代码粘贴到如图所示的框内 第三步:选 ...

  3. android java style_Android 在Java代码中设置style属性--使用代码创建ProgressBar对象

    强烈推荐: 在andriod开发中,很大一部分都要与资源打交道,比如说:图片,布局文件,字符串,样式等等.这给我们想要开发一些公共的组件带来很大的困难,因为公共的组件可能更愿意以jar包的形式出现.但 ...

  4. jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...

    本文是推荐使用过jsb.reflection的开发者进行阅读.关于jsb.reflection的说明请参照: 我们在代码编写过程中,通常会需要在js脚本中调用到java代码或者Objective-C的 ...

  5. linux在代码中表示什么意思,Linux代码中的unlikely和likely分别是什么意思?

    Linux代码中的unlikely和likely分别是什么意思? 我在Linux代码中没有找unlikely和likely的定义. 在源代码中搜索出来很多无法找. 请各位赐教! 谢谢! | 内核里有很 ...

  6. 代码中实现Http的Get请求报401错误,使用浏览器可以正常访问

    这种情况首先使用浏览器访问URl,如果正常,说明代码中的Http请求参数有问题,排查思路是根据浏览器的请求中的header内容放到代码中请求,一般可解决问题.笔者遇到的问题是浏览器中的请求头带有Coo ...

  7. 为什么按照 Angular 官网教程执行简单的测试代码,会遇到expect is not defined的错误消息

    Angular 官网的代码: https://angular.io/api/core/Injectable#providedin 我把这段代码原封不动地拷贝到我的 app.module.ts ,然后执 ...

  8. linux命令行安装 php_如何在 Linux 命令行中使用和执行 PHP 代码

    PHP是一个开源服务器端脚本语言,最初这三个字母代表的是"Personal Home Page",而现在则代表的是"PHP:Hypertext Preprocessor& ...

  9. 如何在CSDN博客中的所贴的代码进行【代码块】显示

    笔者最近很喜欢在csdn发一些技术博客,可是看了别人的博客,有代码的地方总是可以显示出代码块,而自己贴上去的代码总是没有.刚开始还以为CSDN博客里面的编辑功能有,可是找来找去都没有找到.后来才发现原 ...

最新文章

  1. WAIC开发者日倒计时两天,收藏好这份完整日程
  2. 一个小网管的淘金梦----深圳往事(4)
  3. 恶作剧程序之炸弹窗口
  4. OpenCV—形态学运算定义与实现
  5. 数据结构算法入门--链表
  6. PopupWindow和AlertDialog区别
  7. 无人出租车被警察截停后逃逸!AI:我当时害怕极了
  8. python绘制星空_用python画星空源代码是什么?
  9. NFS与NAS谁更适合VMware
  10. 设计模式-单一职责原则
  11. 力扣53.最大子序和 多种方法
  12. 一位Erlang程序猿的自白
  13. 如何使用adb命令安装apk到电视上
  14. maya导入abc动画_UE4 Alembic 动画资产流程的整理
  15. OpenCV每日函数 对象追踪模块 Meanshift算法
  16. iOS 开发实践之Auto Layout(From Vincent Sit)
  17. 5-大数据分析之 druid 介绍
  18. DirectAdmin升级phpMyAdmin版本
  19. 多人网络游戏服务器开发基础学习笔记 II: 帧同步 | 游戏客户端预测原理分析 | FPS 游戏状态同步
  20. h5移动浏览器常见问题

热门文章

  1. Android隐藏状态栏、导航栏
  2. wcf http 返回图片
  3. [转载]----linux系统工程师的前途在哪里?
  4. formidable处理提交的表单或文件的简单介绍
  5. LOJ#2132. 「NOI2015」荷马史诗
  6. Fleecing the Raffle
  7. CheckedComboBoxEdit 重置初始化值的方法
  8. strut2开发环境的搭建
  9. ServiceStack.Ormlit 事务
  10. 利用C++模板特性计算各整数类型的最大最小值