51Testing软件测试论坛

标题: selenium进行自动化测试时用的快速截图工具类 [打印本页]

作者: pyqone    时间: 2017-10-9 11:23
标题: selenium进行自动化测试时用的快速截图工具类
本帖最后由 pyqone 于 2017-10-9 15:25 编辑

在使用selenium编写自动化测试脚本时感觉每次写截图都好麻烦,于是把截图的方法单独弄出来做成了一个类,但由于我在大学期间不是计算机专业的,又苦于刚接触且是自学selenium,所以编程水平实在有限,想通过论坛发布一下我写的代码,望各位大神点评一下,看看哪里需要修改,哪里的注释或者编程风格需要改进,或者是可以增加什么方法,鄙人不甚感激!由于版面限制,源码在附件中


突然发现少上传了一个格式化文件路径的处理链···,现在补上

作者: Real_小T    时间: 2017-10-9 12:06
支持!
作者: pyqone    时间: 2017-10-9 12:26
Real_小T 发表于 2017-10-9 12:06
支持!

谢谢
作者: 梦想家    时间: 2017-10-9 14:43
支持分享
作者: pyqone    时间: 2017-10-9 15:26
梦想家 发表于 2017-10-9 14:43
支持分享

谢谢,希望能提出一些改进意见
作者: Miss_love    时间: 2017-10-9 16:02
支持
作者: pyqone    时间: 2017-10-9 16:36
Miss_love 发表于 2017-10-9 16:02
支持

感谢支持,希望能给出宝贵的改进意见
作者: 海海豚    时间: 2017-10-10 10:34
谢谢分享~
作者: 本才    时间: 2017-11-2 15:02
封装的还有模有样的,不错!
作者: pyqone    时间: 2017-11-7 11:27
本才 发表于 2017-11-2 15:02
封装的还有模有样的,不错!

我也不是弄开发的,所以封装这些还是很乱的,都不怎么符合开发的命名规范
作者: 1348579687    时间: 2017-11-14 16:52
厉害厉害。反过来一看我的代码,感觉很简陋,谢谢楼主分享
public class JieTu {
         
    public static void captureScreen(String fileName, String folder) throws Exception {

        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Rectangle screenRectangle = new Rectangle(screenSize);
        Robot robot = new Robot();
        BufferedImage image = robot.createScreenCapture(screenRectangle);
        // 截图保存的路径
        File screenFile = new File(fileName);   
        // 如果路径不存在,则创建  
        if (!screenFile.getParentFile().exists()) {  
            screenFile.getParentFile().mkdirs();  
        }
        //判断文件是否存在,不存在就创建文件
        if(!screenFile.exists()&& !screenFile .isDirectory()) {
            screenFile.mkdir();
        }
        
        File f = new File(screenFile, folder);        
        ImageIO.write(image, "png", f);
        //自动打开
        /*if (Desktop.isDesktopSupported()
                 && Desktop.getDesktop().isSupported(Desktop.Action.OPEN))
                    Desktop.getDesktop().open(f);*/
    }

    public static void majietu() {
        Date dt=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMddHHmmss");
        String data=sdf.format(dt);
        String rd=sdf1.format(dt);
        try {
            captureScreen("F:\\image\\"+data,rd+".png");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2