2016-12-17 1 views
0

Angenommen, ich habe 5 Testfall und 2. und 3. eine fehlschlägt so nach Anweisung Assert.assertEquals ("http://www.demo.guru99.com/V4/manager/Managerhomepage.php", driver.getCurrentUrl());Wie mehrere Fenster zu schließen, die mit Test NG Framework

driver.close funktioniert nicht. So schließen Sie alle Fenster fehlgeschlagen einmal zu

Probieren mit Fenstergriff zu, aber nicht zu zufriedenstellenden Ergebnissen.

öffentlicher statischer WebDriver-Treiber;

@Test(dataProvider="inputdata") 
public void login(String val1,String val2){ 
    System.setProperty("webdriver.chrome.driver","C:/Users/rakesh/Desktop/chromedriver.exe"); 
    driver =new ChromeDriver(); 
    driver.get("http://www.demo.guru99.com/V4/"); 
    driver.findElement(By.name("uid")).sendKeys(val1); 
    driver.findElement(By.name("password")).sendKeys(val2); 
    driver.findElement(By.name("btnLogin")).click(); 
    Assert.assertEquals("http://www.demo.guru99.com/V4/manager/Managerhomepage.php",driver.getCurrentUrl()); 
    driver.close(); 


} 
@DataProvider(name="inputdata") 
public Object[][] readExcel() throws BiffException, IOException { 
    File f= new File("C:/Users/rakesh/Desktop/selenium/input data/loginTable.xls"); 
    Workbook w =Workbook.getWorkbook(f); 
    Sheet s= w.getSheet("Sheet1"); 
    int rows=s.getRows(); 
    int columns=s.getColumns(); 
    //System.out.println(rows); 
    //System.out.println(columns); 

    String inputData [][] = new String[rows][columns]; 
    for(int i=0;i<rows;i++){ 
     for(int j=0;j<columns;j++){ 
      Cell c=s.getCell(j,i); 
      inputData[i][j]=c.getContents(); 
      //System.out.println(inputData[i][j]); 
     } 
    } 
    return inputData; 


} 
+0

Wenn Sie bei jedem Testfall ein neues Browserfenster öffnen, dann ist es sinnvoll, am Ende dieses Testfalls zu schließen, ob Ihr Testfall fehlgeschlagen oder bestanden hat. –

Antwort

0

Eine Möglichkeit ist, aktuelle junit Version 4.12 und erklärt @After Methode zu verwenden, die nach jeder @Test Methode ausführen würden -

Methode, die jeden Test nach der Ausführung von mit @After ausgeführt markiert wird.

@After 
public void closeConnection(){ 
    driver.close(); 
} 

Aber dann schließen würde dies auch die Verbindung auch dann, wenn der Test passiert. Um also Aktionen basierend auf Testergebnissen zu implementieren, können Sie versuchen, die TestWatcher für Junit entsprechend zu verwenden.

Verwandte Themen