【问题标题】:Unable to switch back to the parent window from the popup frame using selenium webdriver无法使用 selenium webdriver 从弹出框切换回父窗口
【发布时间】:2012-12-31 19:32:35
【问题描述】:

我有登录页面,当单击登录时,它会打开新标签。我使用

将控件移动到新选项卡
driver.switchTo().window("");
// Done some stuffs in new window.

当我单击一个按钮时,它将打开弹出窗口(框架)。

我使用driver.switchTo().frame("frameName"); 选择了一个弹出窗口

从那里通过选择记录,弹出窗口将被关闭。所选记录将显示在父窗口中并刷新页面。

现在我想将控件返回(重新聚焦)到我的父窗口以做其他事情。

但我无法再次聚焦父窗口。

我试过了:

driver.switchTo().defaultcontent();
driver.switchTo().window("");

driver.getWindowHandles();

还是一样的结果....

谁能帮帮我....

【问题讨论】:

    标签: java javascript selenium webdriver selenium-webdriver


    【解决方案1】:
    String oldWindow = driver.getWindowHandle();
    driver.findElement(By.xpath("//a[@id='searchSalesImg']/img")).click(); 
    //by clicking on this we will get a new window
    
    Thread.sleep(5000);
    driver.switchTo().window(driver.getWindowHandle());
    
    driver.switchTo().window("Employer Services Order Management (ESOM)"); 
    //Navigate to new window
    driver.findElement(By.id(" Primary Sales Person:")).sendKeys("MAS%"); 
    //Do some stuff in new window
    
    driver.switchTo().window(oldWindow); 
    //navigate back to old window
    

    【讨论】:

    • @GaborSch:感谢您的回复。但我不会从窗口切换回窗口。我正在从框架切换回窗口。我试过了,但没有得到任何结果....面对相同的 pbm....
    • 答案来自@ginne 我刚刚复习过。
    • @GaborSch:好的,谢谢。如果你有任何想法,请分享。我正面临这个 pbm。
    【解决方案2】:

    尝试使用此代码:-

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

    //你的代码

    String winHandleBefore = driver.getWindowHandle(); webDriver.SwitchTo().Window(winHandleBefore);

    【讨论】: