【问题标题】:Unable to switch back to default frame无法切换回默认框架
【发布时间】:2018-03-21 19:08:43
【问题描述】:
我正在处理以下场景。
我单击主网页中的一个元素,它会打开一个对话框。它是一个 iframe,我使用 diver.switchTo().frame(1); 访问该框架。我能够在该框架中执行所需的活动。单击该框架中的“确定”按钮将关闭它。一旦框架关闭,我将无法访问主页中的任何元素。我使用以下内容切换回主页
driver.switchTo().defaultContent()和driver.switchTo().frame(0)。但他们都没有让我回到主页。
由于框架关闭,我也尝试不使用任何 switchTo() 语句。但它也没有工作。
请帮助我解决其他可能的解决方案。提前致谢!
【问题讨论】:
标签:
java
selenium
selenium-webdriver
【解决方案1】:
需要切换回原来的窗口(Java代码)
String windowHandle = driver.getWindowHandle(); // save the original window handle
// handle the pop up
driver.switchTo().window(windowHandle);
【解决方案2】:
当您尝试切换回 顶级浏览上下文时,您的以下代码试用应该可以工作:
driver.switchTo().defaultContent();
你也可以试试:
driver.switchTo().parentFrame();
有时可能会发生驱动程序失去窗口焦点的情况,在这种情况下,您必须通过以下方式重新获得浏览器上的焦点:
((JavascriptExecutor) driver).executeScript("window.focus();");