51Testing软件测试论坛

标题: Sikuli元素异常处理(截图及打印日志) [打印本页]

作者: 测试积点老人    时间: 2019-1-9 15:33
标题: Sikuli元素异常处理(截图及打印日志)
Sikuli框架在出现异常时,没有做出一些好的处理,比如截图,打印日志,还有对程序的回收,我们可以通过java中的方法对Sikuli进行封装一下,实现这些功能,好了,看如下代码
  1. package com.sikuli;

  2. import java.awt.Dimension;
  3. import java.awt.Rectangle;
  4. import java.awt.Robot;
  5. import java.awt.Toolkit;
  6. import java.awt.image.BufferedImage;
  7. import java.io.File;
  8. import javax.imageio.ImageIO;
  9. import org.apache.log4j.LogManager;
  10. import org.apache.log4j.Logger;
  11. import org.apache.log4j.xml.DOMConfigurator;
  12. import org.sikuli.script.Screen;


  13. public class SikuliElWait {
  14.        
  15.        
  16.          /****************************************************************
  17.          * 对屏幕进行拍照
  18.          *
  19.          ****************************************************************/

  20.         public static void  snapShot(String path) throws Exception {
  21.                
  22.                 String imaFormat ="png";
  23.                 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();         
  24.                 String fName = path +"eImage/";
  25.                
  26.                 BufferedImage screenshot = (new Robot()).createScreenCapture(new
  27.                                      Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
  28.                  
  29.                  
  30.                 File folder =new File(fName);
  31.                 if  (!folder .exists()  && !folder .isDirectory()) {
  32.                                      folder.mkdir();
  33.                          }
  34.                  
  35.                 String name=fName+"err."+imaFormat;
  36.                 File f = new File(name);
  37.                  
  38.                 //将screenshot对象写入图像文件
  39.                 ImageIO.write(screenshot, imaFormat, f);

  40.         }

  41.          /****************************************************************
  42.          * 等待元素出现,如果元素有异常,进行当前页面截图并关闭应用程序
  43.          *
  44.          ****************************************************************/       
  45.        
  46.         public static  void waitEl(Screen scr,String className,String path,String ima,double time,Process app) throws Exception{
  47.                 Logger log = LogManager.getLogger(className);
  48.                 DOMConfigurator.configure("log4j.xml");
  49.                 try {
  50.                         scr.wait(path+ima, time);
  51.                         log.info("元素存在");
  52.                 } catch (Exception e) {                       
  53.                         SikuliElWait.snapShot(path);
  54.                         log.info("元素不存在");
  55.                         app.destroy();
  56.                         throw(e);
  57.                 }                               
  58.         }

  59. }
复制代码



作者: Miss_love    时间: 2021-1-5 13:44
支持分享




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