如何识别selenium ide中iframe / popup中的任何元素?

时间:2012-10-10 09:39:42

标签: selenium-ide

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

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

我很困惑。我尝试了几个命令,例如waitforpopup,selectframe,waitforframetoload,但是无法理解。

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

提前致谢

3 个答案:

答案 0 :(得分:4)

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

<强>方案

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

    <强>解决方案

    (命令&gt; C,目标&gt; T,值&gt; V)如果我没有包含,则意味着将其留空

    • C 打开 | T /
    • C waitForElementPresent | T iframeId | V 3000
    • C waitForFrameToLoad | T iframeId | V 5000
    • C selectFrame | T iframeId
    • C assertElementPresent | T css = div#divElement
    • C verifyElementPresent | T css = div#divElement

答案 1 :(得分:0)

需要输入手动IDE命令才能完成脚本。

要识别弹出窗口中的元素,您需要使用&#39; selectPopup&#39;命令将重点放在弹出窗口中。

要识别iframe中的元素,请使用&#39; selectFrame&#39;命令并将iframe id输入Target参数。使用&#39; selectFrame&#39;没有目标ID的命令可能会默默地失败,具体取决于页面结构(可能有多个iframe等)。

希望这些信息有所帮助。

答案 2 :(得分:0)

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