51Testing软件测试论坛

标题: 分享一个selenium的截图方法 [打印本页]

作者: wugecat    时间: 2010-5-18 09:49
标题: 分享一个selenium的截图方法
不晓得对大家有没有用.
selenium.captureEntirePageScreenshot(arg0, arg1)这个方法是把图片截到了运行sever的那台机器上了,当我们用例和sever不是一台机器的时候就不太方便,所以我们需要用captureEntirePageScreenshotToString(arg0)将图片变为Base64的字符串在转化成图片,存到我们的本地,这样可以将报告和图片生成在一起.下面是转换图片的代码
        private static char[] encodes = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
                        .toCharArray();
        private static byte[] decodes = new byte[256];
        static {
                for (int i = 0; i < encodes.length; i++) {
                        decodes[encodes] = (byte) i;
                }
        }
        public static byte[] decodeBase64(char[] data) {
                ByteArrayOutputStream baos = new ByteArrayOutputStream(data.length);
                int pos = 0, val = 0;
                for (int i = 0; i < data.length; i++) {
                        val = (val << 6) | decodes[data];
                        pos += 6;
                        while (pos > 7) {
                                baos.write(val >> (pos -= 8));
                                val &= ((1 << pos) - 1);
                        }
                }
                return baos.toByteArray();
}
                public static void saveErrImage(String pngString, String fileName) {
                try {
                        File png = new File(fileName);
                        FileOutputStream fos = new FileOutputStream(png);
                        fos.write(_FrameUtil.decodeBase64(pngString.toCharArray()));
                        fos.flush();
                        fos.close();
                } catch (Exception e) {
                }
        }

[ 本帖最后由 wugecat 于 2010-5-18 09:50 编辑 ]
作者: 小米啊    时间: 2010-5-18 09:56
谢谢分享
作者: littlezhong222    时间: 2010-5-20 18:01
nice share!




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