在selenium web驱动程序中的特定错误页面上拍摄屏幕截图

时间:2016-04-01 12:29:27

标签: selenium-webdriver

我的方案是,我在网站上的许多按钮点击时都得到相同的错误页面。 我想截取同一个错误页面的屏幕截图,并参考该错误页面发生在该站点的哪个链接。 因此,只要在任何点击时出现此错误页面,我都希望屏幕截 你能建议我如何编写这个函数以及如何在selenium Webdriver中的其他函数中调用该函数。 请分享一些代码示例。

截至目前,我的编写方式仅为:

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);  FileUtils.copyFile(scrFile, new File("D:\\Home\\Ruchi\\failure.png"));

但在此我需要在每次发生故障后编写这些代码行。

1 个答案:

答案 0 :(得分:1)

使用try和catch块

try{
  // Put your script here
}
catch(Exception ex)
{
            File scrn=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

            // extracting date for folder name.
            SimpleDateFormat sdfDate1 = new SimpleDateFormat("yyyy-MM-dd");//dd/MM/yyyy
            Date now1 = new Date();
            String strDate1 = sdfDate1.format(now1);

            // extracting date and time for snapshot file
            SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//dd/MM/yyyy
            Date now = new Date();
            String strDate = sdfDate.format(now);

            String filefolder="./Snap/"+strDate1+"/";  // create a folder as snap in  your project directory

            // Creating folders and files
            File f = new File(filefolder+strDate+".jpeg");

            FileUtils.copyFile(scrn, new File(f.getPath()));
}

如果您的脚本失败,程序将跳转到catch块,然后代码将为您拍摄屏幕

希望它会对你有所帮助:)。