2018年1月17日,星期三

使用Selenium Webdriver测试失败时如何捕获屏幕截图

我们知道了解测试失败的原因非常重要,我们需要在测试用例失败时捕获屏幕截图。测试失败的原因可能是应用程序中的错误或自动化脚本中的错误,因此要了解确切的问题,捕获测试用例失败的屏幕截图非常重要。

我已经写了一篇有关如何截取屏幕截图的文章,您可以在此处引用。在这篇文章中,我们将看到如何在测试用例失败的情况下捕获屏幕截图。

1. ITestResult接口 -这将为我们提供测试用例的执行状态和测试用例名称。
2. @AfterMethod -TestNG的注释,将在之后执行 每次测试执行,无论 测试用例通过或失败@AfterMethod将 always execute.

让我们看完整的代码-




package captureScreenshot;
 
// Import all classes and interface
import java.io.File;
import library.Utility;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
 
public class  脸书 ScreenshotExample {
 
// Create Webdriver reference
WebDriver driver; 
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Anuja.AnujaPC\\Downloads\\chromedriver_win32\\chromedriver.exe");
 driver=new ChromeDriver(); 

 @Test
public void captureScreenshot() throws Exception
{
 
// Initiate Chrome browser

 
// Maximize the browser
driver.manage().window().maximize();
 
// Pass application url
driver.get("http://www.facebook.com");
 
// Here we are forcefully passing wrong id so that it will fail our testcase
driver.findElement(By.xpath(".//*[@id='emailasdasdas']")).sendKeys(" 质量检查自动化 ");
 
 
}
 
 
 
 
 
// It will execute after every test execution 
  @AfterMethod  
public void tearDown(ITestResult result)
{
 
// Here will compare if test is failing then only it will enter into if condition
if(ITestResult.FAILURE==result.getStatus())
{
try 
{
// Create refernce of TakesScreenshot
TakesScreenshot ts=(TakesScreenshot)driver;
 
// Call method to capture screenshot
File source=ts.getScreenshotAs(OutputType.FILE);
 
// Copy files to specific location here it will save all screenshot in our project home directory and
// result.getName() will return name of test case so that screenshot name will be same
FileUtils.copyFile(source, new File("./ScreenShots/"+result.getName()+".png"));
 
System.out.println("Screenshot taken");
} 
catch (Exception e)
{
 
System.out.println("Exception while taking screenshot "+e.getMessage());
} 
 
 
 
}
// close application
driver.quit();
}
 
 
 
}

6条评论:

  1. 关于在Selenium Webdriver测试失败时如何捕获屏幕截图的尼斯Bolg,我们是Web开发,Web设计和 软件开发.

    回复 删除
  2. Tally Course in Delhi, Noida & Gurgaon Online or Classroom at Best Fees in India. Choose a wide range of Advanced Course at 高科技解决方案. Get a Call & Take a Free Demo Classes-+91-9311002620, +91-11-40504400. More info-//www.htsindia.com/Courses/Tally/tally-training-course
    诺伊达,德里最佳演说学院课程& Gurgaon

    回复 删除
  3. 诺伊达德里的塔利研究所&Ncr德里最低价的古尔冈比较所有事物-费用,位置,评论,反馈,课程持续时间。现在打电话&获取免费的演示课-+ 91-9311002620,+ 91-11-40504400。
    更多信息- 诺伊达德里的塔利研究所& Gurgaon

    回复 删除
  4. 很高兴阅读您的博客。这种在不同博客上撰写的概念性内容始终受到赞赏。大多数要点都可以从您的博客中学到。
    谢谢
    会员营销指南

    回复 删除
  5. 非常有趣的内容!谢谢!!
    克莱克在这里 Azure培训

    回复 删除