javascript - 将 Protractor 与非 Angular 网站托管在 iframe 内的 Angular 应用同步

标签 javascript angularjs protractor

我在通过 by.binding() 等方法访问元素时遇到问题。

项目设置如下:

Non-angular website
|
--> Iframe
    |
    --> Angular app

这是我正在尝试做的事情的片段:

// Disable sync
browser.ignoreSynchronization = true;

// Navigate to non-angular website
browser.driver.get('http://non-angular.com');

// Switch to angular app (inside the iframe)
browser.switchTo().frame('angular-iframe');

// Search for an element
browser.driver.findElement(by.id('title')); // -> Works

element(by.binding('model.title')); // -> Fails 
UnknownError: unknown error: [ng:test] no injector found for element argument to getTestability

知道我在这里缺少什么吗?

最佳答案

好的,所以问题与非 Angular 网站 + Iframe 无关。相反,它是由 Angular 手动引导引起的。

我所要做的就是告诉 Protractor 等待,直到 Angular 在页面上可用并准备好同步。

关于javascript - 将 Protractor 与非 Angular 网站托管在 iframe 内的 Angular 应用同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30597802/

相关文章:

angularjs - 为 Protractor e2e 测试设置环境参数

javascript - Protractor 中的过滤器函数的 promise 是如何得到解决的?

javascript - 图像的 Angular 循环

javascript - AngularJS $scope 变量不会使用 GET 请求显示在 ionic View 中

javascript - 如何在 Ionic 应用程序中删除此空间

javascript - ui-router(状态 'dash' 中的无效参数)

jquery - 事件类被添加到 HTML 而不是它的属性

angularjs - 在 Protractor 中模拟 E2E 测试中的服务

javascript - 使用不显眼的 javascript 对元素列表进行 Ajax 请求

javascript - 按时间间隔循环 javascript 函数