【问题标题】:Getting NoSuchWindowException when the child window is closed子窗口关闭时出现 NoSuchWindowException
【发布时间】:2018-12-13 19:34:58
【问题描述】:

我有以下场景

我单击父窗口中的链接(即添加评论链接)以打开一个新窗口。我添加评论并单击关闭按钮切换回父窗口

点击关闭按钮后出现以下异常

原因:org.openqa.selenium.remote.ErrorHandler$UnknownServerException:找不到窗口。浏览器窗口可能已关闭。 构建信息:版本:'2.39.0',修订:'14fa800511cc5d66d426e08b0b2ab926c7ed7398',时间:'2013-12-16 13:18:38' 系统信息:主机:'INLN50866593A',ip:'10.52.27.72',os.name:'Windows 8.1',os.arch:'amd64',os.version:'6.3',java.version:'1.7.0_55 ' 驱动信息:driver.version:未知

我已经编写了以下代码来将窗口切换到子窗口

public void switchWindow() {
        for (final String s : HtmlAutomationHelper.getWindowHandles())
            HtmlAutomationHelper.switchToWindow(s);
        SynchronizationHelper.pause(3000);
    }

切换窗口后添加评论点击关闭按钮

但只要我点击关闭按钮,我就会得到 nosuchwindowexception

【问题讨论】:

    标签: java windows selenium-webdriver


    【解决方案1】:

    可能的问题是您正在关闭您不想关闭的父窗口。

    String originalWindowHandle = driver.getWindowHandle();
    java.util.Set<java.lang.String> windowHandles = driver.getWindowHandles();
    
    for (String window: windowHandles) {
    
        //skip if parent window
        if(!window.equals(originalWindowHandle)){
            //if not parent switch to window
            driver.switchTo().window(window);
            //do whatever and use close window here to
            //close the child window        
        }  
        // if you are done switch back to parent`   
        driver.switchTo().window(originalWindowHandle);     
    }   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      相关资源
      最近更新 更多