【问题标题】:How to identify any element in an iframe/popup in selenium ide?如何在 selenium ide 中识别 iframe/弹出窗口中的任何元素?
【发布时间】:2012-10-10 09:39:41
【问题描述】:

我是 selenium 的新手,想了解如何识别 iframe 或弹出窗口中的元素。 在我们的应用程序中,当我们单击按钮时,会在同一页面上加载弹出窗口或 iframe。 在该页面上,我需要单击一个按钮,然后继续我的其他操作。 录制时,selenium 不会等待弹出窗口或 iframe 加载。由于 iframe/popup 仍在加载,所以它会转到下一个命令并失败,因为尚未找到该对象。

应该是使用wait命令来等待它加载或者使用一些select命令。

我很困惑。我尝试了几个命令,例如 waitforpopup、selectframe、waitforframetoload,但无法弄清楚。

对此的任何帮助都会很棒!

提前致谢

【问题讨论】:

    标签: selenium-ide


    【解决方案1】:

    这是一个对我有用的解决方案:

    场景

    1. 使用向 DOM 添加 iframe 的 JavaScript 加载页面<iframe id="iframeId" />
    2. iframe 加载
    3. 现在我想检查 iframe <div id="divElement"></div> 中的元素

    解决方案

    (Command > C, Target > T, Value > V) 如果我没有包含,则表示留空

    • C打开   | T/
    • CwaitForElementPresent   | TiframeId   | V3000
    • CwaitForFrameToLoad   | TiframeId   | V5000
    • CselectFrame   | TiframeId
    • CassertElementPresent   | Tcss=div#divElement
    • CverifyElementPresent   | Tcss=div#divElement

    【讨论】:

    • 我想获取没有 css 或 xpath 的元素。(我不应该给出硬编码的值)。
    【解决方案2】:

    需要输入手动 IDE 命令来完成您的脚本。

    要识别弹出窗口中的元素,您需要使用“selectPopup”命令将焦点放在弹出窗口中。

    要识别 iframe 中的元素,请使用“selectFrame”命令并将 iframe id 输入到 Target 参数中。根据页面结构(可能有多个 iframe 等),使用没有目标 ID 的“selectFrame”命令可能会静默失败。

    希望这些信息对您有所帮助。

    【讨论】:

      【解决方案3】:

      这里有几个答案,任何人都可以从中受益,但有时 iframe id 可能是动态的,因为来自特定链接的不同内容(例如不同的付费订阅或试用等),并且为目标提供静态 id 会失败你的测试。最好的情况是采用 iframe 标签的静态属性,例如类属性,这样您就可以每次都运行脚本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-12
        • 2017-01-30
        • 2021-09-08
        • 1970-01-01
        • 2022-01-04
        相关资源
        最近更新 更多