代码开发

CukeTest 提供远程自动化功能,使用户能够在本地开发、调试和执行远程设备上的自动化脚本。本文将介绍如何开发远程自动化脚本,并提供实际的示例代码。

远程自动化实战示例:Windows 记事本

以下示例展示了如何连接远程 Windows 10 设备,并自动操作系统自带的“记事本”应用,完成文本输入、文件保存等任务。

脚本操作流程:

  1. 连接远程设备;
  2. 启动记事本;
  3. 输入文本;
  4. 点击菜单保存文件;
  5. 设置保存路径并保存;
  6. 关闭记事本;
  7. 断开远程连接。

示例代码:

JavaScript
Python
const { CukeTest } = require("cuketest");

(async () => {
    let auto = await CukeTest.connect({
        wsEndpoint: 'ws://192.168.1.10:3131/ws'
    });

    const { runSettings: RunSettings, winAuto: Auto, util: Util } = auto;

    await RunSettings.set({ slowMo: 1000, reportSteps: true });
    let modelWin = await Auto.loadModel(__dirname + "/recording.tmodel");

    await Util.launchProcess("C:\\Windows\\System32\\notepad.exe");
    await modelWin.getDocument("文本编辑器").set("Hello World");
    await modelWin.getMenuItem("文件(F)").click(20, 5);
    await modelWin.getMenuItem("保存(S)").click(45, 5);
    await modelWin.getEdit("文件名:1").set("C:\\temp\\helloworld.txt");
    await modelWin.getButton("保存(S)1").click();
    await modelWin.getButton("关闭").click();

    auto.close();
})();
import os
from auto.sync_api import sync_auto

def recording():
    with sync_auto('ws://192.168.1.10:3131/ws') as auto:
        RunSettings = auto.runSettings
        Auto = auto.winAuto
        Util = auto.util

        RunSettings.set({"slowMo": 1000, "reportSteps": True})
        modelWin = Auto.loadModel(os.path.dirname(os.path.realpath(__file__)) + "/recording_1.tmodel")

        Util.launchProcess("C:\\Windows\\System32\\notepad.exe")
        modelWin.getDocument("文本编辑器").set("Hello World")
        modelWin.getMenuItem("文件(F)").click(33, 2)
        modelWin.getMenuItem("保存(S)").click(50, 15)
        modelWin.getEdit("文件名:1").set("C:\\temp\\helloworld.txt")
        modelWin.getButton("保存(S)1").click()
        modelWin.getButton("关闭").click()

        auto.close()

if __name__ == "__main__":
    recording()

脚本开发中的注意事项

在开发远程自动化脚本时,了解以下关键要点能够帮助您确保脚本在远程环境中顺利执行:

1. 自动化库必须从 auto 实例中引入

在远程脚本中,所有自动化库(如 winAutoutilkeyboardmouse 等)必须从远程连接返回的 auto 实例中获取。

  • 正确方式(从 auto 实例中解构):
    Python
    Auto = auto.winAuto
    Keyboard = auto.keyboard
  • 错误方式(本地导入,会导致代码在本地执行):
    Python
    from leanproAuto import Util  # ❌

若使用错误的导入方式,脚本将尝试在本地执行,而非远程环境。

2. 远程平台不支持的自动化类型不能使用

远程连接返回的 auto 对象仅包含当前平台支持的自动化能力。例如:

  • 在远程 Windows 上,不能访问 Linux 平台特有的 atkAuto
  • 脚本中若意图使用不支持的库,如 auto.atkAuto,将引发错误。

✅ 在连接远程设备前,请先确认目标平台支持的自动化能力。

results matching ""

    No results matching ""