Javascript 如何切换iFrame InternJS

Javascript 如何切换iFrame InternJS,javascript,selenium,iframe,intern,leadfoot,Javascript,Selenium,Iframe,Intern,Leadfoot,我需要切换到具有动态名称和id的iframe <iframe name="easyXDM_1435765828615" id="easyXDM_1435765828615">...</iframe> 。。。 我注意到LeadFoot有一个函数,但当我传递一个从中返回的元素时,我得到错误“MoveTargetOutOfBounds:POST http…/moveto/{“element”:“16”}元素内的偏移量无法滚动到视图中” 有没有更好的方法使用execute()

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

<iframe name="easyXDM_1435765828615" id="easyXDM_1435765828615">...</iframe>
。。。
我注意到LeadFoot有一个函数,但当我传递一个从中返回的元素时,我得到错误“MoveTargetOutOfBounds:POST http…/moveto/{“element”:“16”}元素内的偏移量无法滚动到视图中”


有没有更好的方法使用execute()和一些javascript来实现这一点,或者如何使switchToFrame()工作?

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

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

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

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

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

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

如果您将
easyXDM_1435765828615
字符串传递到
switchToFrame()
?或者,id是动态生成的吗?它是动态的。目前,我正在使用xpath/*[contains(@id,“easyXDM”)查找iframe。好的,另一个选项:指定表单的索引-例如
switchToFrame(1)
。当我传递element.elementId或1时,它将超时。Side note element.elementId=15,但我的元素原始代码错误:16??如果将
easyXDM_1435765828615
字符串传递到
switchToFrame()
,该怎么办?或者,id是动态生成的吗?它是动态的。目前,我正在使用xpath/*[contains(@id,“easyXDM”)查找iframe。好的,另一个选项:指定表单的索引-例如
switchToFrame(1)
。当我传递element.elementId或1时,它将超时。Side note element.elementId=15,但我的原始代码与element:16存在错误??