Passer de l'enfant à la fenêtre parent dans Selenium Webdriver

Je suis de la création de scripts de test en Sélénium WebSriver à l'aide d'Eclipse, et ont frappé un hic dans l'hypothèse où j'ai un parent de la fenêtre, je clique sur un lien sur cette fenêtre et une fenêtre s'ouvre. Je veux fermer la fenêtre enfant et de s'acquitter des fonctions de nouveau sur la fenêtre parent.

Mon code est comme ci-dessous:

public static void daysInStockSelectContract(InternetExplorerDriver driver) {
    driver.findElement(By.xpath(".//*[@id='page-content']/table/tbody/tr[1]/td[1]/a")).click();

    for(String winHandle : driver.getWindowHandles()) {
        driver.switchTo().window(winHandle);
        driver.close();
    }
 }

Lorsque j'exécute le code ci-dessus, l'enfant de la fenêtre reste ouverte pendant que le parent de la fenêtre se ferme, ce qui est l'effet inverse de ce que je voulais. Aussi une erreur comme suit est affiché dans la console:

"Exception in thread "main" org.openqa.le sélénium.à distance.SessionNotFoundException: session 1ff55fb6-71c9-4466-9993-32d7d9cae760 n'existe pas"

Je suis en utilisant IE WebDriver pour mon Sélénium scripts.


Mise à JOUR - 17/11/14

Subh, voici le code que j'ai utilisé à partir du lien que vous avez eu la bonté d'envoyer plus de qui, malheureusement, ne fonctionne pas.

public static void daysInStockSelectContract(InternetExplorerDriver driver) {
    //get the parent handle before clicking on the link
    String winHandleBefore = driver.getWindowHandle();

    driver.findElement(By.xpath(".//*[@id='page-content']/table/tbody/tr[1]/td[1]/a")).click();

    //the set will contain only the child window now. Switch to child window and close it.
    for(String winHandle : driver.getWindowHandles()) {
        driver.switchTo().window(winHandle);
    }
    driver.close();
    driver.switchTo().window(winHandleBefore);
}
InformationsquelleAutor Andy Tilston | 2014-11-14