【问题标题】:How to switch iframes InternJS如何切换 iframes InternJS
【发布时间】:2015-07-01 16:58:09
【问题描述】:

我需要切换到具有动态名称和 ID 的 iframe。

<iframe name="easyXDM_1435765828615" id="easyXDM_1435765828615">...</iframe>

我注意到 LeadFoot 有一个 switchToFrame() 函数,但是当我传递一个从 find() 返回的元素时,我收到错误“MoveTargetOutOfBounds: POST http.../moveto / {"element":"16" } 元素内的偏移量不能滚动到视图中”。

有没有更好的方法来使用 execute() 和一些 javascript,或者我怎样才能让 switchToFrame() 工作?

【问题讨论】:

  • 如果将easyXDM_1435765828615 字符串传递给switchToFrame() 会怎样?或者,id是动态生成的?
  • 它是动态的。目前我正在使用 xpath //*[contains(@id,"easyXDM_")] 来查找 iframe。
  • 好的,另一种选择:指定表单的索引 - 例如switchToFrame(1).
  • 它只是在我通过 element.elementId 或 1 时超时。旁注 element.elementId = 15,但我的原始代码错误与元素:16??

标签: javascript selenium iframe intern leadfoot


【解决方案1】:

根据您的 iframe 在页面上的设置方式,您可以尝试以下操作:

    .switchToFrame(null)
    .findAllByClassName('iframe')
    .then(
      function(iframes) {
         new remote.constructor(remote.session)
        .switchToFrame(iframes[iframes.length-1])
      }
    )

这假设您要切换到的 iframe 是最后被发现的,这显然是一个很大的假设。不过,如果动态创建的 iframe 每次都以相同的顺序出现,您也许可以对此进行调整。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 2011-07-13
    • 2010-09-13
    相关资源
    最近更新 更多