【问题标题】:How to get out from an iframe?如何从 iframe 中退出?
【发布时间】:2013-12-18 08:14:39
【问题描述】:

我有一个这样的 iframe:

<div id="frameDiv" style="clear: both; border: 1px solid gray;">
<iframe id="reportFrame" width="100%" frameborder="0" style="height: 800px; fit: fill; fit-position: fill; overflow-y: scroll; overflow-x: scroll" marginwidth="0" marginheight="0" src="/InvalidData.html"/>
</div>

我是用来进入 iframe 的:

driver.switchTo().frame("reportFrame");

现在我可以在那个框架中进行操作了。 我无法在框架外进行任何操作, 我需要走出框架。以下方法不起作用:

driver.switchTo().defaultContent(); 

在框架元素无法识别的情况下。帮助我摆脱框架。 以便我能够识别元素。

【问题讨论】:

  • 除了reportFrame 之外,您的页面中可能至少还有一个 iframe,并且您尝试与之交互的元素可能在另一个 iframe 中。

标签: java javascript iframe selenium selenium-webdriver


【解决方案1】:

在切换到框架之前使用获取父窗口句柄

parentWindow = Driver.getWindowHandle();

现在切换到 iframe 并进行操作。

再次切换回父窗口使用

Driver.switchTo().window(parentWindow).

【讨论】:

  • 无法识别窗口级别的元素,它没有从框架移动到窗口。
  • 您可以发布包含您尝试访问的框架之外的其他元素的 html 吗?
  • 这是我得到的错误:org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时交互:60.03 秒
【解决方案2】:

您可以使用切换回主窗口

driver.switchTo().window("name of the main window")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多