【问题标题】:Testing Angular app with Protractor inside iframe hosted by non-Angular app?在非 Angular 应用托管的 iframe 中使用 Protractor 测试 Angular 应用?
【发布时间】:2015-03-20 20:04:33
【问题描述】:

在将旧版应用程序迁移到 Angular 的过程中,我们有一个设置,旧版应用程序将新应用程序加载到 iframe 中。我们想测试这种与 Protractor 的集成。旧版应用不是 Angular 应用。

我们可以测试旧版应用是否有 Angular,但它没有,因此 Protractor 无法将上下文切换到 Angular 应用所在的 iframe。

这应该怎么做?

编辑:量角器失败如下。

在 iframe 出现并做之后

browser.switchTo().frame(...);

Protractor 无法找到 iframe 内的控件。我们已经在 iframe 之外测试了这个案例,Protractor 在 Angular 应用程序中发现按钮、链接和字段都很好。但是当同一个页面加载到 iframe 中时,它就好像它们不存在一样。

【问题讨论】:

    标签: javascript angularjs iframe protractor


    【解决方案1】:

    曾经我遇到过类似的情况,但是是颠倒的——点击时打开了一个非角页面:

    我希望同样的想法在这里也能奏效。在切换到帧之前将ignoreSynchronization 设置为false。在afterEach()函数中将ignoreSynchronization设置回true

    browser.ignoreSynchronization = false;
    // switch to frame
    

    【讨论】:

    • 这让我可以调出包含我的 Angular 应用程序的 iframe。但是量角器无法切换​​到 iframe 并从那里恢复。我将其归咎于 Angular 不是根框架的一部分。
    • @tempoc 你能分享一下它是如何失败的吗?另外,该站点是否公开,以便我可以尝试重现该问题?谢谢。
    • 我在上面评论了量角器是如何失败的。由于公司政策,该应用程序在开发过程中不可供公众访问。
    • @tempoc 感谢您提供的信息。可能是个愚蠢的想法,您可以通过直接导航到 iframe src url 来访问 iframe 内容吗?..
    • @alexce 在大多数情况下这绝对是一种解决方法,但我们测试的重点是模拟真实的用户交互,包括在帧之间发生的一些帖子消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 2019-10-25
    相关资源
    最近更新 更多