Angular 角e2e不';在路由后超时之前,不要查找标记

Angular 角e2e不';在路由后超时之前,不要查找标记,angular,typescript,jasmine,protractor,Angular,Typescript,Jasmine,Protractor,我刚刚开始学习编写e2e测试。我在第一页做了一些测试,一切正常(标题,h1标签文本,页面上的卡片数量)。我在第一页的卡片上有按钮,可以旋转到另一页。我通过buttonText方法找到它并执行。单击()。它像我想的那样旋转第二页。但在那个旋转过程之后,我试着在第二页测试h1文本。但它不工作,我得到超时错误。我在哪里犯错? 这是我代码的一部分 app-e2e-spec.ts it('should to measures page',()=>{ expect(page.gotomeasurepage(

我刚刚开始学习编写e2e测试。我在第一页做了一些测试,一切正常(标题,h1标签文本,页面上的卡片数量)。我在第一页的卡片上有按钮,可以旋转到另一页。我通过buttonText方法找到它并执行
。单击()
。它像我想的那样旋转第二页。但在那个旋转过程之后,我试着在第二页测试h1文本。但它不工作,我得到超时错误。我在哪里犯错? 这是我代码的一部分

app-e2e-spec.ts

it('should to measures page',()=>{
expect(page.gotomeasurepage()).toEqual(“措施”);
});
app.po.ts

gotomeasurepage(){
单击此按钮。单击ShowMoreButton();//一个用于展开显示按钮卡的函数
let button=元素(按.buttonText(“度量”);
按钮。单击();
让headline=element(by.css(“.container.header h1”)).getText();
返回标题;
}
第二页的html


{{'MEASURES'| translate}}//此管道返回“MEASURES”文本

gotomeasuresage


browser.wait(ExpectedConditions.presenceOf(headline))

在UI量角器上的每个操作之后,都会检查站点中的角度属性,以确保页面稳定(意味着页面上的所有更改和加载都已完成)

造成此问题的原因是量角器检测到旋转动作后角度页面未稳定。您可以尝试增加配置文件中的默认等待时间,以便给应用程序更多的加载时间:

//30 second timeout
allScriptsTimeout: 30 * 1000

如果您仍然收到超时,则应用程序中可能存在一些轮询操作,这会阻止angular识别它已完成加载。查看此以了解更多信息

我不知道自己是否做得很好,但我在web上搜索了ExpectedConditions并像那样更改了我的功能
GoToMeasurePage(){var EC=dragotor.ExpectedConditions;this.clickShowMoreButton();let button=element(by.buttonText(“Measures”);button.click();let headline=element(by.css(.container.header h1”);browser.wait(EC.presenceOf(headline))返回headline;}
但我仍然有相同的错误。您能显示您收到的超时错误吗?有可能会导致超时appear@DublinDev“失败:脚本超时:11秒内未收到结果”是我的命令提示符。如果服务器有任何新数据,我在页面上每隔60秒检查一次。这可能是原因吗?当然是原因。你的页面永远不会稳定,因为它永远不会完成加载。你有几个选择来处理这个问题。您可以要求开发人员将setInterval移到角度区域之外,也可以使用
浏览器禁用角度稳定性检查。waitForAngularEnabled(false)
。后面的选项意味着您需要自己处理所有关于区域的等待。我停止了间隔,现在一切正常。非常感谢你。我现在读这篇文章是为了找到一个比删除间隔更好的解决方案。我想如果你没有帮助我,我永远也解决不了这个问题。