From bd8673f83240fefa55744896e5805aa9c0286c04 Mon Sep 17 00:00:00 2001 From: "jieying.li" Date: Tue, 6 Aug 2024 09:53:41 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=B8=8A=E4=BD=8D=E6=9C=BA=201.?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A5=E5=9B=BE=E6=89=BE=E5=9B=BE=E4=B8=AD?= =?UTF-8?q?=E6=88=AA=E5=8F=96=E5=85=A8=E5=B1=8F=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/IosAutomationHandler.java | 8 ++++--- .../utils/ios/IosDeviceHandleHelper.java | 2 ++ .../ios/LinuxAndWindowsIosHandleHelper.java | 21 +++++++++++++------ .../utils/ios/MacIosHandleHelper.java | 17 ++++++++++++--- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/automation/handler/IosAutomationHandler.java b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/automation/handler/IosAutomationHandler.java index 7b46e8d..e7c9ed4 100644 --- a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/automation/handler/IosAutomationHandler.java +++ b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/automation/handler/IosAutomationHandler.java @@ -1915,7 +1915,9 @@ public class IosAutomationHandler extends AbstractAutomationHandler { HttpUtils.downloadFileToLocal(picDownloadUrl, System.getProperty("user.dir") + "/tempPic", picName); File file = new File(System.getProperty("user.dir") + "/tempPic/" + picName); String targetBase64 = Base64.encode(file); - File sourceFile = ScreenShotUtils.getIOSMobileScreenShot(serial); + + File sourceFile = deviceHandleHelper.getScreenShotFile(serial); + String sourceBase64 = Base64.encode(sourceFile); if (StringUtils.isNotBlank(targetBase64) && StringUtils.isNotBlank(sourceBase64)) { Map resultPoint = null; @@ -1935,7 +1937,7 @@ public class IosAutomationHandler extends AbstractAutomationHandler { resultPoint = (Map) bodyMap.get("data"); } } catch (URISyntaxException e) { - logger.error("找图像地址有误,:{}", e); + logger.error("找图像地址有误", e); } catch (Exception e) { logger.error("请求图像解析服务失败,参数:{},错误:{}", JSON.toJSONString(param), e); } @@ -1952,7 +1954,7 @@ public class IosAutomationHandler extends AbstractAutomationHandler { result.setX(clickTrueX); result.setY(clickTrueY); } catch (IOException e) { - logger.error("转换base64图片失败:{}", e); + logger.error("转换base64图片失败", e); } } else { logger.warn("步骤【{}】未找到对应的图像", request.getStepToken()); diff --git a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/IosDeviceHandleHelper.java b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/IosDeviceHandleHelper.java index 45e83f5..d14d009 100644 --- a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/IosDeviceHandleHelper.java +++ b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/IosDeviceHandleHelper.java @@ -80,4 +80,6 @@ public abstract class IosDeviceHandleHelper { public abstract boolean activateApp(String deviceId, String appPackage); public abstract File getScreenShotFile(String deviceId, Integer startX, Integer startY, Integer cutWidth, Integer cutHeight, Integer screenWidth, Integer screenHeight); + + public abstract File getScreenShotFile(String deviceId); } diff --git a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/LinuxAndWindowsIosHandleHelper.java b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/LinuxAndWindowsIosHandleHelper.java index a34560f..7c0e46e 100644 --- a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/LinuxAndWindowsIosHandleHelper.java +++ b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/LinuxAndWindowsIosHandleHelper.java @@ -206,19 +206,23 @@ public class LinuxAndWindowsIosHandleHelper extends IosDeviceHandleHelper { */ @Override public File getScreenShotFile(String deviceId, Integer startX, Integer startY, Integer cutWidth, Integer cutHeight, Integer screenWidth, Integer screenHeight) { - if (cutWidth <= 0 || cutHeight <= 0) { - throw new ExecuteException("截取图片的宽高不满足要求"); - } File snapShotFile = null; File cutFile = null; try { snapShotFile = ScreenShotUtils.getIOSMobileScreenShot(deviceId); - if (null == snapShotFile) { + if (!snapShotFile.exists()) { logger.debug("设备【{}】未截取到图片",deviceId); throw new ExecuteException("未截取到图片"); } - cutFile = cutImageFile(snapShotFile, deviceId, startX, startY, cutWidth, cutHeight, screenWidth, screenHeight); - logger.debug("设备【{}】截取到的图片为:{}",deviceId,cutFile.getAbsolutePath()); + if (null != startX && null != startY) { + if (cutWidth <= 0 || cutHeight <= 0) { + throw new ExecuteException("截取图片的宽高不满足要求"); + } + cutFile = cutImageFile(snapShotFile, deviceId, startX, startY, cutWidth, cutHeight, screenWidth, screenHeight); + logger.debug("设备【{}】截取到的图片为:{}", deviceId, cutFile.getAbsolutePath()); + } else { + cutFile = snapShotFile; + } return cutFile; } catch (ExecuteException e) { logger.error("截图失败", e); @@ -235,4 +239,9 @@ public class LinuxAndWindowsIosHandleHelper extends IosDeviceHandleHelper { } } } + + @Override + public File getScreenShotFile(String deviceId) { + return getScreenShotFile(deviceId, null, null, null, null, null, null); + } } diff --git a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/MacIosHandleHelper.java b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/MacIosHandleHelper.java index 2a00f8e..8e2d9cd 100644 --- a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/MacIosHandleHelper.java +++ b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/utils/ios/MacIosHandleHelper.java @@ -81,9 +81,6 @@ public class MacIosHandleHelper extends IosDeviceHandleHelper { @Override public File getScreenShotFile(String deviceId, Integer startX, Integer startY, Integer cutWidth, Integer cutHeight, Integer screenWidth, Integer screenHeight) { - if (cutWidth <= 0 || cutHeight <= 0) { - throw new ExecuteException("截取图片的宽高不满足要求"); - } PyMobileDevice.SpecificAppleDeviceInfo specificAppleDeviceInfo = IOSDeviceManager.getInstance().getSpecificAppleDeviceInfo(deviceId); File file = null; File screenShotFile = null; @@ -96,6 +93,9 @@ public class MacIosHandleHelper extends IosDeviceHandleHelper { logger.debug("设备【{}】截图的结果:{}",deviceId,screenShotFile.getAbsolutePath()); } if (null != startX || null != startY) { + if (cutWidth <= 0 || cutHeight <= 0) { + throw new ExecuteException("截取图片的宽高不满足要求"); + } file = cutImageFile(screenShotFile, deviceId, startX, startY, cutWidth, cutHeight, screenWidth, screenHeight); logger.debug("截取出来的图像为:{}", file.getAbsolutePath()); } else { @@ -111,4 +111,15 @@ public class MacIosHandleHelper extends IosDeviceHandleHelper { } return file; } + + /** + * 全屏截图 + * + * @param deviceId + * @return + */ + @Override + public File getScreenShotFile(String deviceId) { + return getScreenShotFile(deviceId, null, null, null, null, null, null); + } }