Selenium WebDriver中的driver.switchTo()。parentFrame()和driver.switchTo()。defaultContent()方法有什么区别?

时间:2018-06-29 07:47:32

标签: java selenium selenium-webdriver iframe webdriver

以下两种方法有什么区别:

driver.switchTo().parentFrame();
driver.switchTo().defaultContent();

4 个答案:

答案 0 :(得分:1)

driver.switchTo()。parentFrame();

根据规范, driver.switchTo().parentFrame(); 调用以下内容:

Switch To Parent Frame

Switch to Parent Frame命令中,将用于将来命令的current browsing context设置为当前浏览上下文父级

根据 Java文档 parentFrame()方法,将焦点更改为父上下文。如果当前上下文是顶级浏览上下文,则上下文保持不变。

driver.switchTo()。defaultContent();

根据 Java文档defaultContent()方法选择页面的第一帧,或者当页面包含iframe时选择主文档。

答案 1 :(得分:1)

当您在网页中处理多个iframe时,通常使用driver.switchTo().parentFrame()将控件切换回父框架。

在处理网页中的弹出对话框窗口时,driver.switchTo().defaultContent()用于将控件切换回窗口中的默认内容。

答案 2 :(得分:0)

有明显的区别:

方案::当有多个框架并且其中一些框架嵌套时。

iframeMain
    iframeParent
         iframechild

假设您位于 ifrmaechild 中:

执行driver.switchTo().parentFrame();时:您将转到 iframeParent
但是,当您执行driver.switchTo().defaultContent();时:您将转到页面的主要HTML。
请注意,在这种情况下,您将不会转到 iframeMain

答案 3 :(得分:0)

driver.switchTo()。defaultContent();

这会将控件传递给包含iframe的主文档

driver.switchTo()。parentFrame();

这会将控件传递给当前帧即将到来的父帧

让我们理解它:

main body
{
frame1
{
frame2
frame3 (we are here currently)
}
}

现在使用driver.switchTo()。defaultContent();会将控件传递给主体

并使用driver.switchTo()。parentFrame();会将控件传递给frame1。