我有一个嵌套的iframe。我目前在子框架中,现在我想切换到主iframe,然后从主机中切换到普通框架。
答案 0 :(得分:1)
如果您在孩子frame
中,请切换到默认内容,如下所示:
driver.switchTo().defaultContent();
现在您位于主HTML上,可以再次切换到每一帧。如果要打开嵌套框架,则必须逐步进行。
您可以在此tutorial中获得更多信息。
答案 1 :(得分:1)
场景:嵌套的iframe。
iframeMain
iframeParent
iframechild
假设您位于 ifrmaechild 中:
当您执行driver.switchTo().parentFrame();
时:您将转到iframeParent。
但是,当您执行driver.switchTo().defaultContent();
时:您将转到页面的主要HTML。
请注意,在这种情况下,您将不会进入iframeMain。
因此,根据您的情况,您应该执行以下操作:driver.switchTo().parentFrame();
转到iframe父级。从这里开始,您应该使用:driver.switchTo().defaultContent();
进入默认的DOM树。
希望这会有所帮助。
答案 2 :(得分:1)
根据您的情况,当前您位于childFrame
,现在您想从mainFrame
回到childFrame
,就像childFram > mainFrame > childFrame
一样。
基本上,我们可以使用3种方式切换帧中的元素
您可以按索引或cssSelector切换帧。我也有像你一样的问题。我针对以下问题实施了解决方案。
//Below will gives you number of frames available in current page.
Int size = driver.findElements(By.tagName("iframe")).size();
//Switch to frame by it's index
driver.switchTo().frame(4);
//To write text in iframe using below code.
WebElement body = driver.findElement(By.tagName("body"));
body.click();
body.sendKeys("Some text");
//below code will switch to default DOM
driver.switchTo().defaultContent();
希望,这对您有用。