我要运行这个脚本怎么运行? javascript
"ui"; var contactName = "苏国权"; var message = "test123";
// 打开微信 app.launchApp("微信");
sleep(3000); // 点击搜索 var search = desc("搜索").findOne(5000);
if (search) { search.click();
sleep(1000);
var input =
className("EditText").findOne(3000);
if (input) {
input.setText(contactName);
sleep(2000);
var contact =
textContains(contactName).findOne(3000);
if (contact) {
contact.click();
sleep(2000);
var msgInput =
className("EditText").findOne(3000);
if (msgInput) {
msgInput.setText(message);
sleep(500);
var send = text("发送").findOne(3000);
if (send) send.click();
toast("发送成功"); }
}
}
}

已存档
HAMI_7788013573 · 8 天前

回答

Hamibot AI
1
· 8 天前

要在 Hamibot 上运行这段脚本,你需要完成环境准备、脚本创建和任务执行三个步骤。以下是详细操作指南:

1. 环境准备

在运行自动化脚本前,确保满足以下条件:

  • 安装 Hamibot 代理:在目标安卓设备上安装并登录 Hamibot Agent。
  • 开启无障碍服务:在设备设置中,找到“无障碍”或“辅助功能”,启用 Hamibot 的无障碍服务权限。这是脚本能够模拟点击和获取控件信息的基础。
  • 保持屏幕常亮:建议脚本中加入 device.keepScreenOn() 或在系统设置中关闭自动锁屏,防止运行过程中屏幕熄灭导致中断。

2. 脚本创建与优化

你可以直接在 Hamibot 控制台创建新脚本。注意,你的代码开头包含了 "ui";,这表示脚本以 UI 模式运行。如果脚本中没有定义具体的 UI 界面布局(如 <view> 结构),通常不需要此声明,直接运行普通自动化脚本即可。为了保证兼容性和规范性,建议在代码顶部添加文档注释。

以下是优化后的代码示例,已添加必要的注释并调整了部分逻辑以提高稳定性:

// 文档地址 https://docs.hamibot.com/
// 如果不需要自定义界面,建议移除 "ui"; 以提升启动速度
// "ui"; 

var contactName = "苏国权";
var message = "test123";

// 保持屏幕常亮
device.keepScreenOn();

// 打开微信
app.launchApp("微信");
sleep(3000);

// 检查是否成功打开
if (!currentPackage() == "com.tencent.mm") {
    toast("未检测到微信前台,请手动打开");
    exit();
}

// 点击搜索
// 注意:不同版本的微信搜索按钮描述可能不同,建议根据实际情况调整 desc 或 text
var search = desc("搜索").findOne(5000);
if (!search) {
    // 尝试通过文本查找
    search = text("搜索").findOne(5000);
}

if (search) {
    search.click();
    sleep(1000);
    
    // 查找输入框
    var input = className("EditText").findOne(3000);
    if (input) {
        input.setText(contactName);
        sleep(2000);
        
        // 查找联系人
        var contact = textContains(contactName).findOne(3000);
        if (contact) {
            contact.click();
            sleep(2000);
            
            // 查找消息输入框
            // 微信聊天界面的输入框可能有多个,需确保定位准确
            var msgInput = className("EditText").findOne(3000);
            if (msgInput) {
                msgInput.setText(message);
                sleep(500);
                
                // 查找发送按钮
                var send = text("发送").findOne(3000);
                if (send) {
                    send.click();
                    toast("发送成功");
                } else {
                    toast("未找到发送按钮");
                }
            }
        }
    }
}

3. 执行任务

  • 云端执行:在 Hamibot 控制台上传脚本后,选择绑定的设备,点击“运行”。这种方式适合定时任务或远程触发。
  • 本地执行:在设备上的 Hamibot App 中打开脚本,点击播放按钮直接运行。

4. 常见问题与建议

  • 控件识别失败:微信版本更新频繁,界面控件属性(如 descclassName)可能会变化。如果脚本无法运行,请使用 Hamibot 自带的“选择器”工具重新捕获当前界面的控件属性。
  • 兼容性说明:Hamibot 使用的 JavaScript 引擎是 Rhino 1.7.15,不支持箭头函数和默认参数。上述代码已确保符合该规范。
  • 异常处理:建议在关键步骤增加 try-catch 块或更详细的日志输出(console.log),以便排查具体在哪一步卡住。

按照以上步骤操作,你应该能顺利运行该脚本。如果在执行过程中遇到具体的报错信息,可以提供更多细节以便进一步分析。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实