我有一个网页,其中有一个按钮,当点击时,弹出一个窗口表单,我必须选择一些值。我目前正在使用IE浏览器和selenium 2.53库来自动化这个流程。现在我的问题是我无法切换到这个弹出窗口,因为我没有得到任何窗口句柄,并且每次只显示一个父句柄。
我也尝试了警告/弹出窗口切换,但是仍然通过父页面上的按钮调用此弹出窗口无法识别,因此无法在此弹出页面中执行任何操作。
Set<String> winhandle= driver.getWindowHandles();
System.out.println(winhandle);
for (String handle : driver.getWindowHandles())
{
System.out.println(handle);
String newURL = driver.getTitle();
System.out.println(newURL);
}
此致 尼尔
答案 0 :(得分:0)
在您的代码中,您实际上从不迭代其他窗口。
为了正确打印所有窗口的句柄(包括弹出窗口),请尝试修改代码:
Set<String> winhandle = driver.getWindowHandles();
for (String handle : driver.getWindowHandles()) {
driver.switchTo().window(handle); // This line was missing. It tells the driver to operate on a different window
System.out.println(handle);
}
然后 - 经过测试 - 只要你在正确的窗口中,就可以打破循环。
这对你有用吗?
答案 1 :(得分:0)
它很奇怪,但现在确实使用窗口句柄和switchTO的相同代码与chrome浏览器一起工作正常并且它不能用于IE浏览器。我不知道如何在IE浏览器中修复它,但在Chrome浏览器中工作得很好。
的问候, Nir