【发布时间】:2017-12-29 09:49:55
【问题描述】:
所以我有一个 selenium 网络驱动程序将我登录到一个网站,然后我从那里单击一个按钮,该按钮会打开第二个窗口。我使用下面的代码切换到新窗口
String winParent = driver.getWindowHandle();
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle);
}
现在我在第二个窗口运行一些自动化。完成后,我将按下保存按钮,这将关闭当前窗口。如果窗口没有关闭,则表示我在页面上有一些错误,我需要循环返回并修复它。
driver.findElement(By.id("btnSave")).click();
if (isAlive(driver) == false) {
//break and exit
System.out.println("cic" + name);
finalString = finalString + "cic: " + name;
break;
}
public Boolean isAlive(WebDriver driver) {
try {
driver.getCurrentUrl();//or driver.getTitle();
return true;
} catch (Exception ex) {
return false;
}
}
程序在捕获错误并且窗口未关闭时按预期工作。但是一旦一切都清楚并且窗口关闭,它就会进入上面的 if 语句并显示此错误。
无法接收来自渲染器的消息。
我相信我没有检查窗口是否已正确关闭。
编辑:经过一些调试后,似乎一旦窗口关闭,程序就无法真正告诉下一步该做什么。 http://i.imgur.com/l8nsPPr.png
【问题讨论】:
-
此链接对您有帮助吗? *.com/questions/27616470/…
标签: java selenium automation