【发布时间】:2019-10-03 14:33:57
【问题描述】:
我尝试在包含 Angular 和非 Angular 组件的 Web 应用程序上执行一些量角器测试。 我的代码如下所示:
describe("Test Name", function() {
it("Test case", function() {
// first execute steps on a non-Angular component
browser.waitForAngularEnabled(false);
// some test steps
// then execute tests on an Angular component, which opens in a new browser tab
browser.waitForAngularEnabled(true);
// some more test steps
});
});
问题是运行上述测试后,浏览器启动并立即关闭并出现以下错误:
失败:等待 Protractor 与页面同步时出错:“angularJS 可测试性和 Angular 可测试性都未定义。这可能是因为这是一个非 Angular 页面,也可能是因为您的测试 涉及客户端导航,这可能会干扰 Protractor 的引导。详情见https://github.com/angular/protractor/issues/2643”
当我从代码中删除browser.waitForAngularEnabled(true);时,非Angular组件的步骤成功执行,然后在新的浏览器选项卡中打开应用程序的Angular组件,10秒内没有任何反应(没有执行任何步骤) 并且浏览器关闭并出现以下错误:
失败:等待 10007 毫秒后超时
【问题讨论】:
-
您的量角器版本是否 >6.0,如果不是,您的配置文件中是否声明了
SELEMIUM_PROMISE_MANAGER: false? -
@mariobrosbb 您可能还应该添加测试步骤以帮助我们帮助您:-) 对我来说听起来像是一个异步问题。也许尝试使用
done模式或将它们与 async\await 或 promise 链接起来。
标签: javascript node.js angularjs angular protractor