将 Protractor 与由非 Angular 网站托管在 iframe 中的 Angular 应用程序同步

Sync Protractor with an Angular app hosted inside an iframe by a non-Angular website

我在通过 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 在页面上可用并准备好与之同步。