javascript - 如何切换 iframe InternJS

标签 javascript selenium iframe intern leadfoot

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

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

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

是否有更好的方法使用execute()和一些javascript来做到这一点,或者如何使switchToFrame()工作?

最佳答案

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

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

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

关于javascript - 如何切换 iframe InternJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31167427/

相关文章:

javascript - "multipart != application/json"在 android 上获取 post 错误(react-native)

javascript - 即使在函数中更新后,全局对象仍未定义

iframe - 我可以从 iframe 页面访问 iframe 's parent' s 元素吗

java - 重复使用 Selenium 元素定位器的最佳方法是什么?

php - 将外部网页加载到我的页面而不重定向到不同的 URL

html - 在不使用 iFrame 的情况下将 Html 页面嵌入到另一个 Html 页面中

javascript - 隐藏移动设备的 Javascript 文件

javascript - 如何找到渗透路径并突出显示?

python - xpath:元素中的元素

java - Selenium click() 事件似乎并不总是被触发 => 导致超时?