【发布时间】:2016-02-04 06:20:51
【问题描述】:
当我单击页面上的按钮(在 IE 浏览器中)时,会打开一个新的弹出页面。我尝试获取此弹出窗口的窗口句柄失败了。这是我的第一次尝试:
String baseWin = driver.getWindowHandle();
System.out.println(baseWin);
Set<String>s = driver.getWindowHandles();
Iterator<String> ite = s.iterator();
while ( ite.hasNext() ) {
String popUpHandle = ite.next();
if(!baseWin.equals(popUpHandle)) {
driver.switchTo().window(popUpHandle);
System.out.println(driver.switchTo().window(popUpHandle).getTitle());
此尝试仅打印基本窗口的句柄,如果第二个打印语句放置在 if() 语句之外,但在 while() 语句中和 if() 语句之后,它只会输出基本窗口的标题。所以这组句柄似乎只包含基本窗口句柄。
这是我的第二次尝试:
String baseWin = driver.getWindowHandle();
System.out.println(baseWin);
ArrayList<String> popUpWin = new ArrayList<String>(driver.getWindowHandles());
popUpWin.remove(baseWin);
driver.switchTo().window(popUpWin.get(0));
System.out.println(driver.switchTo().window(popUpWin.get(0)));
此尝试返回错误,表示数组 popUpWin 为空,即 size == 0。因此,当我调用 driver.getWindowHandles() 时未检索弹出窗口的句柄,并且仅包含基本窗口的句柄.这是IE的问题吗?有解决方法吗?还是我忽略了代码中的某些内容? (请注意,我忽略了此处包含的代码中的暂停,因此我认为这不是问题所在。)
【问题讨论】:
-
您使用的是什么版本的硒?这是 Windows 7 IE8 Selenium 2.12 的已知问题。但那是从 2011 年开始的
标签: java selenium selenium-webdriver popup webdriver