Fermeture Du Navigateur Après L'Échec De Test

Je suis en cours d'exécution des tests avec WebDriver, lorsqu'un test échoue, le navigateur n'est pas à proximité. Sur une machine Windows, c'est un énorme problème parce que je puis avoir plusieurs instances de la IEDriver toujours en cours d'exécution en arrière-plan.

J'ai essayé une instruction try/catch qui ne semble pas fonctionner non plus. Si le test échoue, le navigateur reste ouvert. Toute aide serait grandement appréciée.

Le try catch déclaration ressemble à quelque chose comme ceci:

try
{
   Assert.something(something something dark side);
   driver.quit();
}
catch(Exception e)
{
   System.out.println(e)
   driver.quit();
}

Mon code complet est ci-dessous:

public class ClickAddMedication 
{
Browser browser = new Browser();

public void addMedication(String driverName)
{
    //Open Browser and navigate to page
    WebDriver driver = browser.getDriver(driverName);
    driver.manage().window().maximize();
    driver.get("http://someIP:8080/hmp_patient/index.html");

    //Click Add Medication button
    WebElement addBtn = driver.findElement(By.id("add-btn"));
    addBtn.click();

    //Verify Add Medication page has loaded successfully
    WebElement rxBtn = driver.findElement(By.className("icon-rx"));
    WebElement otcBtn = driver.findElement(By.className("icon-otc"));
    WebElement herbBtn = driver.findElement(By.className("icon-herb"));

    Assert.assertEquals(true, rxBtn.isDisplayed());
    Assert.assertEquals(true, otcBtn.isDisplayed());
    Assert.assertEquals(true, herbBtn.isDisplayed());

    driver.quit();

}

@Test(groups = {"functionalTests.FF"})
public void test_AddMedication_FF()
{
    addMedication("firefox"); 
}
@Test(groups = {"functionalTests.iOS"})
public void test_AddMedication_iOS()
{
    addMedication("iOS");
}
}

- Je exécuter les tests avec une testng.xml fichier et que vous souhaitez avoir à la fermeture du navigateur, indépendamment de si oui ou non le test passe.

Ci-dessous est mon Browser classe:

public class Browser 
{
public WebDriver getDriver(String driverName)
{
    WebDriver driver = null;
    if(driverName == "firefox")
    {
        driver = new FirefoxDriver();
    }
    else if(driverName == "chrome")
    {
        File chromeFile = new File ("C:/webdrivers/chromedriver.exe");
        System.setProperty("webdriver.chrome.driver", chromeFile.getAbsolutePath());
        driver = new ChromeDriver();
    }
    else if(driverName == "ie")
    {
        File ieFile = new File("C:/webdrivers/IEDriverServer.exe");
        System.setProperty("webdriver.ie.driver", ieFile.getAbsolutePath());
        driver = new InternetExplorerDriver();
    }
    else if(driverName == "iOS")
    {
        try 
        {
            driver = new RemoteWebDriver(new URL("http://localhost:3001/wd/hub"), DesiredCapabilities.ipad());
        } catch (MalformedURLException e) 
        {

            e.printStackTrace();
        }
    }


    return driver;

}
}
La modification que vous mettez dans votre test, vous les mettez dans JimEvans répondre, de sorte que le montage a été rejeté. Merci de modifier dans votre question ici.
Mince, je pensais que j'avais.

OriginalL'auteur DarthOpto | 2012-12-21