From 8bc084459cb7fe8eefb19300452099102ebcc002 Mon Sep 17 00:00:00 2001 From: "yineng.huang" Date: Tue, 27 Aug 2024 14:34:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=A9=BA=E6=96=87=E6=9C=AC=E8=BE=93?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../automation/handler/IosAutomationHandler.java | 11 +++++++---- .../screen/AndroidScreenResponseThread.java | 8 +++++--- .../cctp/upperComputer/driver/ios/NKAgent.java | 10 ++++++++++ .../mobile/ios/utils/AutomationHandleUtil.java | 13 +++++++++++++ 4 files changed, 35 insertions(+), 7 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 d3384c6..00ccba2 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 @@ -662,9 +662,12 @@ public class IosAutomationHandler extends AbstractAutomationHandler { } boolean clear = (boolean) data.get(UpperParamKey.CLEAR); if (clear) { - logger.debug("步骤【{}】输入前清空数据",request.getStepToken()); - boolean clearSuccess = nkAgent.handleDeleteTextUiNode(Command.CLEAR.getCode()); - logger.debug("步骤【{}】输入前清空数据结果:{}",request.getStepToken(),clearSuccess); + String xpath = (String) data.get(UpperParamKey.NODE_TREE); + logger.debug("步骤【{}】输入前清空数据,xpath:{}", request.getStepToken(),xpath); + SearchUiNodeData searchUiNodeData = new SearchUiNodeData(); + searchUiNodeData.setChain(xpath); + boolean clearSuccess = nkAgent.handleClearTextUiNode(searchUiNodeData,Command.CLEAR.getCode()); + logger.debug("步骤【{}】输入前清空数据结果:{}", request.getStepToken(), clearSuccess); } String inputText = (String) data.get(UpperParamKey.INPUT_TEXT); Integer commandId = (Integer) data.get(UpperParamKey.COMMAND_ID); @@ -1637,7 +1640,7 @@ public class IosAutomationHandler extends AbstractAutomationHandler { pointXpath[2] = xpathObject.getString("selector"); Integer num = (Integer) data.get(UpperParamKey.POINT_NUM); List passPoint = (List) data.get(UpperParamKey.SWIPE_POINT); - Integer waitTimeOut = (Integer) data.get(UpperParamKey.WAIT_TIME_OUT); + Integer waitTimeOut = (Integer) data.get(UpperParamKey.WAIT_TIMEOUT); logger.debug("拿到的左上角的点:{}", pointXpath[0]); logger.debug("拿到的左上角的右边点:{}", pointXpath[1]); logger.debug("拿到的左上角的下边点:{}", pointXpath[2]); diff --git a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/AndroidScreenResponseThread.java b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/AndroidScreenResponseThread.java index e12384d..de903a2 100644 --- a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/AndroidScreenResponseThread.java +++ b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/AndroidScreenResponseThread.java @@ -146,9 +146,11 @@ public class AndroidScreenResponseThread extends ImageScreenResponse { @Override public void changeScreenSize() { - logger.info("改变设备【{}】屏幕的宽高..........................", adbDevice.getSerial()); - ScreenStreamCommand screenStreamCommand = new ScreenStreamCommand(true, catchParam.getRotation(), catchParam.getWidth(), catchParam.getHeight(), catchParam.getFrameRate(), catchParam.getQuality()); - this.asyncAgentSession.send(screenStreamCommand); + if (null != this.asyncAgentSession) { + logger.info("改变设备【{}】屏幕的宽高..........................", adbDevice.getSerial()); + ScreenStreamCommand screenStreamCommand = new ScreenStreamCommand(true, catchParam.getRotation(), catchParam.getWidth(), catchParam.getHeight(), catchParam.getFrameRate(), catchParam.getQuality()); + this.asyncAgentSession.send(screenStreamCommand); + } } @Override diff --git a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/driver/ios/NKAgent.java b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/driver/ios/NKAgent.java index 1bb5771..daaed50 100644 --- a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/driver/ios/NKAgent.java +++ b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/driver/ios/NKAgent.java @@ -194,6 +194,16 @@ public final class NKAgent { return bool.isSuccess(); } + + public boolean handleClearTextUiNode(ICommandData data, int commandId) { +// System.out.println('删除'); + ICommandPacket packet = packetTransfer.syncSend(commandId, data); + if (packet == null) return false; + BooleanCommandData bool = new BooleanCommandData(); + packet.fillICommandData(bool); + return bool.isSuccess(); + } + /* 设置JPEGServer的帧率 rate 取值[0, 15] diff --git a/cctp-test-element/cctp-test-element-library/cctp-test-element-mobile-ios/src/main/java/net/northking/cctp/element/mobile/ios/utils/AutomationHandleUtil.java b/cctp-test-element/cctp-test-element-library/cctp-test-element-mobile-ios/src/main/java/net/northking/cctp/element/mobile/ios/utils/AutomationHandleUtil.java index 052418a..081374b 100644 --- a/cctp-test-element/cctp-test-element-library/cctp-test-element-mobile-ios/src/main/java/net/northking/cctp/element/mobile/ios/utils/AutomationHandleUtil.java +++ b/cctp-test-element/cctp-test-element-library/cctp-test-element-mobile-ios/src/main/java/net/northking/cctp/element/mobile/ios/utils/AutomationHandleUtil.java @@ -565,6 +565,18 @@ public class AutomationHandleUtil { public static Boolean elementInput(ElementHandleParam param) throws Exception{ boolean success = false; + String xpath = null; + for (IStepTarget target : param.getTargets()) { + if (UsingType.SELECTOR.equals(target.getUsing())) { + JSONObject object = JSON.parseObject(target.getValue(), JSONObject.class); + xpath = object.getString(UsingType.Key.SELECTOR_KEY); + logger.info("拿到的nodeTree:{}", xpath); + break; + } + } + if (StringUtils.isBlank(xpath)) { + throw new ExecuteException("只支持xpath的方式输入"); + } boolean clickSuccess = clickElement(param); if (!clickSuccess) { throw new ExecuteException("未找到控件"); @@ -574,6 +586,7 @@ public class AutomationHandleUtil { paramMap.put(UpperParamKey.CLEAR, param.isClear()); paramMap.put(UpperParamKey.INPUT_TEXT, param.getInputTextValue()); paramMap.put(UpperParamKey.COMMAND_ID, CommandId.INPUT_TEXT.getCode()); + paramMap.put(UpperParamKey.NODE_TREE, xpath); CmdAutomationRequest builder = CmdAutomationRequest.builder(AutomationRequestCmd.INPUT_TEXT, token, paramMap); Object o = sendUpperMessageAndWaitReturn(param.getDeviceDriver(), builder, token, param.getWaitTimeout()); logger.debug("控件输入的结果:{}", o);