关于新窗口弹出问题,我们往往需要switch方法去切换得到新窗口的值,而如何判断和新窗口对比之后能正确切换,则需要我们用getWindowHandles()方法,然后再foreach它们,具体实现如下:
String winHandleBefore = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles();
for(String s: handles)
{
if (s.equals(winHandleBefore))
{
continue;
}
else
driver.switchTo().window(s);
....
[color=green]//The operation you want to do in new window[/color]
driver.findElement(By.xpath("the xpath you want to click")).click();
....
sleep(2000);
driver.close();
}
[color=green]//再切换回原窗口,进行下面的操作就可以了[/color]
driver.switchTo().window(winHandleBefore);
String winHandleBefore = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles();
for(String s: handles)
{
if (s.equals(winHandleBefore))
{
continue;
}
else
driver.switchTo().window(s);
....
[color=green]//The operation you want to do in new window[/color]
driver.findElement(By.xpath("the xpath you want to click")).click();
....
sleep(2000);
driver.close();
}
[color=green]//再切换回原窗口,进行下面的操作就可以了[/color]
driver.switchTo().window(winHandleBefore);