【问题标题】:Selenium: unable to switch windowSelenium:无法切换窗口
【发布时间】:2013-10-23 13:11:51
【问题描述】:

我正在尝试切换到另一个弹出窗口,但出现了某种错误。我无法弄清楚为什么代码无法切换窗口

它给出的错误是

java.lang.NullPointerException:条目中的空值:name=null

这里是代码......

String parentWindowHandle = driver.getWindowHandle();
        System.out.println("parentWindowHandle......"+parentWindowHandle);
        //click on "register"

        Actions act = new Actions(driver);
            act.click(driver.findElement(By.id("ctl00_ContentPlaceHolder1_btnRegisterMe")));
        act.perform();

        sleep(26000); 
        String popUpWindowHandle=null;
        Set<String> openWindowsList = driver.getWindowHandles();
        for (String windowHandle : openWindowsList) {
             System.out.println("windowHandle......"+windowHandle);
            if (!windowHandle.equals(parentWindowHandle))
                {popUpWindowHandle = windowHandle;

              break;}
        }                                                
                // Switching control to newly opened window

        driver.switchTo().window(popUpWindowHandle);

【问题讨论】:

  • 您的问题来自windowHandle.equals(parentWindowHandle)。我的猜测是parentWindowHandle 没有初始化。
  • 是的,我初始化了 parentWindowHandle,但忘了把代码放在这里。看看我转发的代码....

标签: java testing selenium


【解决方案1】:

如果您能够打印窗口句柄,请尝试

if (!windowHandle.equalsIgnoreCase(parentWindowHandle)){
            popUpWindowHandle = windowHandle;
            break;
}

而不是

if(!windowHandle.equals(parentWindowHandle)){}

【讨论】:

  • thanx 4 的帮助 .... 它与 if(!windowHandle.equals(parentWindowHandle)){}
  • 你能分享一下实际问题是什么以及你做了什么来解决?
  • 我已将睡眠时间从 5sc 增加到 26sc......实际上问题是在打开新的弹出窗口之前正在执行窗口切换代码......
猜你喜欢
  • 2019-12-02
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多