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

问题描述 投票:3回答:3

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

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

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

任何有关这方面的帮助都会很棒!

提前致谢

selenium-ide
3个回答
4
投票

这是一个适合我的解决方案:

场景:

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

解:

(命令> C,目标> T,值> 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

0
投票

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

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

要识别iframe中的元素,请使用“selectFrame”命令并在Target参数中输入iframe ID。使用没有目标ID的'selectFrame'命令可能会无声地失败,具体取决于页面结构(可能有多个iframe等)。

希望这些信息有所帮助


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.