Ich arbeite gerade an einem Automatisierungsprojekt, ich habe dieses einfache Programm erstellt, um Testinformationen zu melden und Screenshots zu machen.Automation screenshot
package ReportTest;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;
import ReportTest.Utitlity;
public class ReportTest {
ExtentReports report;
ExtentTest logger;
WebDriver driver;
@Test
public void verifyBlogTitle()
{
report =new ExtentReports("C:\\Users\\reganc3\\desktop\\report\\LearnAutomation.html");
logger=report.startTest("VerifyBlogTitle");
driver = new FirefoxDriver();
driver.manage().window().maximize();
logger.log(LogStatus.INFO, "Browser started");
driver.get("http://www.learn-automation.com");
logger.log(LogStatus.INFO, "Application is up and running");
String title = driver.getTitle();
Assert.assertTrue(title.contains("Selenium"));
logger.log(LogStatus.PASS, "Title Verified");
}
@AfterMethod
public void tearDown(ITestResult result)
{
if(result.getStatus()==ITestResult.FAILURE)
{
String screenshot_path = Utitlity.captureScreenshot(driver, result.getName());
logger.log(LogStatus.FAIL, "TitleVerification", screenshot_path);
}
report.endTest(logger);
report.flush();
driver.get("C:\\Users\\reganc3\\desktop\\report\\LearnAutomation.html");
}
}
Hier ist meine Utilitys Klasse, die den Screenshot
package ReportTest;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverException;
import java.util.*;
public class Utitlity {
public static String captureScreenshot(WebDriver driver, String screenshotName)
{
try
{
TakesScreenshot ts=(TakesScreenshot)driver;
File source=ts.getScreenshotAs(OutputType.FILE);
String dest = " C:\\Users\\reganc3\\desktop\\ " +screenshotName+ ".png";
File destination=new File(dest);
FileUtils.copyFile(source, destination);
System.out.println("Screenshot taken");
return dest;
}
catch (Exception e)
{
System.out.println("Exception while taking screenshot "+e.getMessage());
return e.getMessage();
}
}
}
Ich erhalte die folgenden Fehler
** Ausnahme während der Einnahme Screenshot null
ich zu nehmen aufgerufen wird Ich bin ziemlich neu bei Selenium und TestNG, also suche ich im Grunde nach jemandem, der etwas Licht in diese Richtung bringt und mir ein paar Hinweise in die richtige Richtung gibt und um zu verstehen, was ac ist passiert mit meinem Code, der diesen Fehler verursacht.
Vielen Dank Im Voraus.
sind Sie sicher, dass der Pfad, den Sie in der captureScreenshot zur Verfügung gestellt haben gültige –
Hallo @rajNishKuMar ist es diese Zeile Sie "String dest =" C bedeuten, ist: \\ Users \\ reganc3 \\ Desktop \\ "+ screenshotName + ".png"; "Ich dachte mir, dass diese Codezeile nur darauf hinweist, wo der Screenshot gespeichert wird, sobald er erstellt wurde? – colin
auch, um Ihnen zu helfen gibt es große Video, wie man mit Ausdehnung Reports arbeitet https://www.youtube.com/watch?v=dBj7pxhZXhY –