Javascript 在因果报应场景中为angular应用程序调用'sleep'或'pause'会破坏框架
我有一个angular应用程序,它使用Javascript 在因果报应场景中为angular应用程序调用'sleep'或'pause'会破坏框架,javascript,angularjs,karma-runner,angularjs-e2e,Javascript,Angularjs,Karma Runner,Angularjs E2e,我有一个angular应用程序,它使用$routeProvider将不同部分加载到ng视图中 因此,在我的e2e场景中,当我调用browser().navigateTo(“/”),我还需要调用sleep(0.5)或其他东西来等待元素实际出现 不幸的是,调用sleep完全破坏了测试!突然之间,框架的行为就好像根本看不到页面一样,并且永远也找不到元素 在e2e测试中,我不必等待加载任何东西,就可以找到我期望的所有元素,但如果我在这些测试中加入了睡眠调用,那么它们也会中断 有人有什么建议吗?如何增加控
$routeProvider
将不同部分加载到ng视图中
因此,在我的e2e场景中,当我调用browser().navigateTo(“/”)
,我还需要调用sleep(0.5)
或其他东西来等待元素实际出现
不幸的是,调用sleep
完全破坏了测试!突然之间,框架的行为就好像根本看不到页面一样,并且永远也找不到元素
在e2e测试中,我不必等待加载任何东西,就可以找到我期望的所有元素,但如果我在这些测试中加入了睡眠调用,那么它们也会中断
有人有什么建议吗?如何增加控制台的冗长性?有什么办法让测试仪重新聚焦
其他信息:
- 浏览器控制台或命令行控制台中没有错误输出李>
- 我已经直接从angular seed项目中复制了我的业力设置。据我所知,他们是一模一样的
我建议您在进行角度E2E测试时使用。这是有意识的角度和回报的承诺。你可以这样做:
ptor.get('http://localhost/#/my-route').then(function () {
// Do something
});
您也可以像这样使用ptor.wait
:
var timeout = 10000;
ptor.wait(function () {
return {some condition}
}, timeout);
它将在继续之前等待条件为真
您还可以使用ptor.waitForAngular()
,它将等待angular解析任何承诺和http请求