Selenium 监控错误和错误;集成测试中的错误通知

Selenium 监控错误和错误;集成测试中的错误通知,selenium,integration,intern,Selenium,Integration,Intern,我的问题有两方面。我使用Intern作为一个集成/e2e测试框架,在不同的客户端JS框架中提供两个不同的服务。我希望能够在整个测试中标记两件事: 获取资源的api调用返回400或500级别的状态 页面上会出现与某些css匹配的错误通知/div,但会相对快速地消失 在第一种情况下,我研究了在客户端上使用类似于window.onerror脚本的东西,但不确定它是否有效或在这种情况下是否是最好的 在第二种情况下,我可能会在特定点检查错误div,但这不一定包括自动保存之类的内容。我真正想要的是在整个

我的问题有两方面。我使用Intern作为一个集成/e2e测试框架,在不同的客户端JS框架中提供两个不同的服务。我希望能够在整个测试中标记两件事:

  • 获取资源的api调用返回400或500级别的状态
  • 页面上会出现与某些css匹配的错误通知/div,但会相对快速地消失
在第一种情况下,我研究了在客户端上使用类似于
window.onerror
脚本的东西,但不确定它是否有效或在这种情况下是否是最好的


在第二种情况下,我可能会在特定点检查错误div,但这不一定包括自动保存之类的内容。我真正想要的是在整个测试过程中有一个监听器。

一个
onerror
检查可能是最简单的解决方案。只需在测试开始时将其安装在页面上,如果出现任何错误,请将其设置为全局,并在测试结束时检查全局

另一个可能的选择(我没有测试过)可能是在单独的命令链中为错误弹出窗口启动
find
,并使其与主测试链同时运行。这需要将find timeout设置为一个相对较大的值(足够大以便查找可以持续整个测试)。使用
Promise.all
组合两个命令链,例如:

var load = this.remote.get('somePage').setFindTimeout(somethingBig);
var errorCheck = load.findByCssSelector('.errorClass').then(function () {
    throw new Error("shouldn't have found this");
});
var test = load.doTestThings();
return Promise.all([ errorCheck, test ]);