2017-05-23 7 views
0

Ich versuche, einen Testfall zu schreiben, der eine GMail-Anmeldung simuliert. Ich erhalte folgende Fehlermeldung, wenn ich versuche, einen Screenshot des fehlgeschlagenen Testfalls zu erstellen: Angehängtes vollständiges Code-Snippet, Screenshot nicht möglich & Speichern Sie den Screenshot.Selenium/TestNG: 'Ich konnte keinen Screenshot von fehlgeschlagenem Testfall mit Selenium Webdriver erstellen

Fehler angezeigt:

FAILED CONFIGURATION: @AfterTest Fail_Test || java.lang.IllegalArgumentException: falsche Anzahl von arguments`

-Code-Schnipsel:

@Test 
    public void login_gmail() throws IOException, InterruptedException 
    { 
    System.setProperty("webdriver.chrome.driver", "C:/Users/neha.sharma/Downloads/chromedriver.exe"); 
    WebDriver drv=new ChromeDriver(); 
    drv.get("http://www.gmail.com"); 
    drv.findElement(By.id("identifierId")).sendKeys("[email protected]"); //USERNAME ENTRY 
    Thread.sleep(6000); 

    WebElement eleme = drv.findElement(By.xpath("html/body/div[1]/div[1]/div[2]/div[2]/form/div[2]/div/div[2]/div[1]/div[2]")); //NEXT BUTTON CLICK 
    JavascriptExecutor executor = (JavascriptExecutor)drv; 
    executor.executeScript("arguments[0].click();", eleme); 
    Thread.sleep(2000); 

    drv.findElement(By.xpath(".//*[@id='password']/div[1]/div/div[1]/input")).sendKeys("abcd234"); // PASSWORD ENTRY 
    Thread.sleep(5000); 
    //drv.findElement(By.xpath("html/body/div[1]/div[1]/div[2]/div[2]/form/div[2]/div/div/div[2]/div[1]/div[2]")).click(); 
    WebElement eleme2 = drv.findElement(By.xpath(".//*[@id='passwordNext']/content/span")); // NEXT BUTTON CLICK AFTER ENTERING PASSWORD 
    JavascriptExecutor executor1 = (JavascriptExecutor)drv; 
    executor1.executeScript("arguments[0].click();", eleme2); 
    String Pass_Result= eleme2.getText(); 
    AssertJUnit.assertEquals(Pass_Result, "NEXT"); 
    Thread.sleep(2000); 
    } 

    @AfterTest 
     void Fail_Test(ITestResult Result) throws IOException 

    { 

      if (ITestResult.FAILURE==Result.getStatus()) 
      { 
       TakesScreenshot ts= (TakesScreenshot)drv; 
       File Source=ts.getScreenshotAs(OutputType.FILE); 
       FileUtils.copyFile(Source, new File("D:\\TestScreen.png")); 
       System.out.print("Screenshot taken"); 
      } 
    } 

Bitte helfen Sie mir bei der Beseitigung dieses Code-Schnipsel aus.

+0

Was ist der Rückgabetyp von ITestResult? – demouser123

+0

Welche TestNG-Version verwenden Sie? – juherr

+0

Ich verwende TestNG Version 6.11. –

Antwort

0

Ich weiß nicht, ob ich Recht habe oder nicht, aber ich denke, Sie den Wert

void fail_test(String name,int name){ 

} 

übergeben müssen, und ich denke, Sie sollten Daten behalten geben nicht den Namen dh String ITestResult

0

ITestResult ist nicht auf @AfterTest Methoden zulässig. Aber es ist möglich, auf @AfterMethod (das ist, denke ich, die Anmerkung, die Sie verwenden wollten).

Ersetzen Sie einfach @AfterTest durch @AfterMethod.

+0

okay, ich habe die Annotation geändert, aber ich kann immer noch keinen Screenshot von Testfall fehlschlagen. –

Verwandte Themen