通过Selenium WebDriver进行自动化时,我有以下方案。
在一个窗口中,我点击一个按钮。代码将对DB进行查询并显示包含其结果的窗口。我无法切换到新窗口。父窗口在单击按钮时关闭,我无法切换到新窗口,因为控件位于父窗口上,并且在屏幕上不可见。
有人可以帮我这个。谢谢
我的代码如下:
driver.findElement(By.xpath(".//*[@id='WIN_0_560700305']/div/div")).click();
window1=driver.getWindowHandle();
driver.switchTo().window(window1);
System.out.println(driver.getTitle());
windowList = driver.getWindowHandles();
System.out.println("Number of Windows-->" + driver.getWindowHandles().size());
iterator = windowList.iterator();
String window2 = null;
while(iterator.hasNext())
{
System.out.println("Entering while loop");
window2 = (String)iterator.next();
System.out.println(driver.getTitle());
}
if (!(window1.equals(window2))){
driver.switchTo().window(window2);
System.out.println("Title of the page after - switchingTo: " +
driver.getTitle());
System.out.println("Current url" + driver.getCurrentUrl());
driver.manage().window().maximize();
}
driver.findElement(By.xpath(".//*[@id='WIN_0_540000016']/div/div")).click();
我已经修改了你的代码,试试下面的代码,希望它能工作。
String window1=driver.getWindowHandle();
driver.findElement(By.xpath(".//*[@id='WIN_0_560700305']/div/div")).click();
System.out.println(driver.getTitle());
Set windowList = driver.getWindowHandles();
Iterator iterator = windowList.iterator();
String window2 = null;
while(iterator.hasNext())
{
System.out.println("Entering while loop");
window2 = iterator.next().toString();
if(!(window1.equals(window2))){
driver.switchTo().window(window2);
System.out.println("Title of the page after - switchingTo: " +
driver.getTitle());
System.out.println("Current url" + driver.getCurrentUrl());
driver.manage().window().maximize();
}
}
//Switched to new window, do operations in new window ..