Я тестирую браузер IE.После нажатия кнопки «Экспорт» в дочернем окне дочернее окно закрывается, и в IE открывается всплывающее окно сохранения и открытия.После этого я использовал класс робота, чтобы перейти во всплывающее окно и щелкнуть опцию «Сохранить», чтобы загрузить файл, как показано на рисунке.Но после нажатия я хочу вернуться в родительское окно, но оно показывает «Окно закрыто» и не может это сделать.
String parent= driver.getWindowHandle();
for (String child : driver.getWindowHandles()) {
if(!parent.equalsIgnoreCase(child))
{
driver.switchTo().window(child);
if(browser.equals("chrome"))
{
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[contains(.,'Export')]"))).click();
}
else if(browser.equals("IE"))
{
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[contains(.,'Export')]")));
WebElement ele=driver.findElement(By.xpath("//a[contains(.,'Export')]"));
myRobot.DownloadFileInIEBrowser(driver, ele);
}
}
}
System.out.println("current handles"+driver.getWindowHandle());
driver.switchTo().window(parent);
public class myRobot {
public static void DownloadFileInIEBrowser(WebDriver driver,WebElement ele) throws AWTException, InterruptedException
{
Robot robot = new Robot();
//get the focus on the element..don't use click since it stalls the driver
new Actions(driver).moveToElement(ele).perform();
Thread.sleep(3000);
Actions action = new Actions(driver);
action.contextClick(ele).build().perform(); //right click on focus element
Thread.sleep(5000);
for(int i=0;i<2;i++)
{
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
robot.delay(2000);
/*robot command to move cursor to dialog pop up window
* Ctrl+F6 pressed to move cursor to pop up dailog window in IE while downloading
* Three times Tab button is pressed to focus cursor on Save button
* Hit Enter again to save file
*/
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_F6);
robot.keyRelease(KeyEvent.VK_F6);
robot.keyRelease(KeyEvent.VK_CONTROL);
for(int i=0;i<3;i++)
{
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
}
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
}