在两个窗口之间切换时遇到问题。 该场景如下所示: 我打开应用程序的登录页面,然后点击登录链接,弹出窗口打开,输入凭据,然后点击登录按钮(这里弹出窗口会自动关闭)。之后,我必须回到原始窗口,并继续执行其他操作,因为我已登录到应用程序。 问题是,它经常发生,我无法切换回到父窗口,弹出后自动关闭,并且它只是悬挂的webdriver,没有做任何事情,没有引发错误。无法从自动关闭的子窗口切换回父窗口
我已经尝试过在谷歌上找到的所有解决方案,但没有任何工作真的一直工作。 最后一段代码,我试图低于一个:
getLandingPageObject().performClickOnEmailLink();
getDriver().manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
Iterator<String> it = handles.iterator();
// iterate through your windows
while (it.hasNext()) {
String parent = it.next();
String newwin = it.next();
getDriver().switchTo().window(newwin);
typeLoginCredentials(username, password);
performClickOnLoginButton();
Thread.sleep(5000);
getDriver().switchTo().window(parent);
}
}
loginShouldBeSuccessful();
我使用Firefox 47.0.1和硒2.53.1
任何想法,我怎么能解决这个问题? 谢谢!
检查您是否未自动切换或查看是否可以在不带任何参数的情况下调用窗口方法。 – lauda
我不会自动切换,我需要使用窗口方法的参数来输入不同的凭据才能登录到应用程序。上面张贴的代码片段可以工作,但不是所有的时间(有时主窗口没有做任何东西,弹出后关闭),我不明白为什么。 – Larisa
@Larisa,尝试driver.SwitchTo()。defaultContent()后导致弹出自动关闭的动作。 –