我正在使用量角器和茉莉花为我的角度Web应用程序编写E2E测试。我的情况是,单击"更新"按钮后,我的网站重新加载,重新加载后它降落在同一角度页面上,如果网站重新加载时间过长,量角器将引发以下错误:
失败:等待量角器与页面同步时出错:"角度JS可测试性和角度可测试性均未定义。这可能是因为这是一个非角度页面,或者因为您的测试涉及客户端导航,这可能会干扰量角器的引导。详情请看 https://github.com/angular/protractor/issues/2643"
我已经在堆栈溢出上应用了所有解决方案,但没有一个可以解决问题。我尝试了以下启用和禁用同步:
- Browser.ignoresync = true;
- 单击"更新"按钮
- 浏览器睡眠(3000);
- Browser.ignoresync = false;
我也尝试过简单的浏览器睡眠,但没有一个有效。这个问题是可变的,有时它会抛出错误,有时不会。我的猜测是,当网站花费的时间比加载睡眠时间更长时,它会引发错误。
我正在使用以下版本的量角器和茉莉花:
"protractor": "5.4.2",
"jasmine": "2.8.3"
browser.ignoreSynchronization = true;
已弃用,请在单击应用程序中的update
按钮后尝试browser.waitForAngularEnabled(true);
。
因此,这会让您的量角器等到所有角度模块完全加载。
希望对您有所帮助。
您对网站加载时间较长时发生的超时的怀疑对我来说似乎是正确的,因为您看到了第一页交互的问题。我会添加一个browser.wait
而不是明确的等待,以允许您的页面获得所需的时间。
browser.wait(
element(by.buttonText('Update')),
10*1000,
'Page did not load within 10 seconds (update btn not present)'
)