回答
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
toast("开始执行问卷填写脚本");
// ==================== 配置区域 ====================
var CONFIG = {
wechatPackage: "com.tencent.mm", // 微信包名
nameValue: "张三", // 姓名填写内容
idValue: "123456", // 工号填写内容
areaValue: "生产一区", // 作业区填写内容
sleepTime: 2000, // 通用等待时间
timeout: 10000 // 控件查找超时时间
};
// ==================== 主函数 ====================
function main() {
// 1. 打开微信
launchApp("微信");
sleep(CONFIG.sleepTime);
// 2. 点击发现页
if (text("发现").findOne(CONFIG.timeout)) {
text("发现").findOne().click();
sleep(1000);
}
// 3. 点击扫一扫
if (text("扫一扫").findOne(CONFIG.timeout)) {
text("扫一扫").findOne().click();
sleep(1500);
} else {
toast("未找到扫一扫入口");
return;
}
// 4. 点击相册按钮
if (text("相册").findOne(CONFIG.timeout)) {
text("相册").findOne().click();
sleep(1500);
} else {
toast("未找到相册按钮");
return;
}
// 5. 选择第二张图片
// 注意:这里需要根据实际相册布局调整,通常是列表中的第二个元素
var images = className("android.widget.ImageView").find();
if (images.length >= 2) {
images.get(1).click(); // 索引从0开始,所以第2张是get(1)
sleep(1000);
// 6. 确认选择
if (text("确定").findOne(CONFIG.timeout)) {
text("确定").findOne().click();
sleep(2000);
}
} else {
toast("相册中图片不足");
return;
}
// 7. 等待问卷页面加载
sleep(3000);
// 8. 填写姓名
fillInput("姓名", CONFIG.nameValue);
sleep(500);
// 9. 填写工号
fillInput("工号", CONFIG.idValue);
sleep(500);
// 10. 填写作业区
fillInput("作业区", CONFIG.areaValue);
sleep(500);
toast("问卷填写完成");
}
// ==================== 辅助函数 ====================
function fillInput(labelText, value) {
// 尝试通过标签文字找到对应的输入框
var input = null;
// 方法1:查找包含标签文字的父容器下的输入框
var parent = textContains(labelText).findOne(CONFIG.timeout);
if (parent) {
// 在父容器中查找输入框
var inputs = parent.find(className("android.widget.EditText"));
if (inputs.length > 0) {
input = inputs.get(0);
}
}
// 方法2:直接查找输入框,然后验证附近是否有标签
if (!input) {
var allInputs = className("android.widget.EditText").find();
for (var i = 0; i < allInputs.length; i++) {
var rect = allInputs[i].bounds();
// 简单判断:如果输入框上方有对应标签文字
// 这里可以根据实际情况调整逻辑
input = allInputs[i];
break;
}
}
if (input) {
input.setText(value);
log("已填写:" + labelText + " = " + value);
} else {
toast("未找到" + labelText + "输入框,请手动检查");
// 尝试点击第一个可用的输入框作为备选
var firstInput = className("android.widget.EditText").findOne(CONFIG.timeout);
if (firstInput) {
firstInput.setText(value);
log("使用备用方案填写:" + labelText);
}
}
}
// ==================== 执行脚本 ====================
main();
使用说明
-
权限准备
- 确保手机已开启「无障碍服务」、「悬浮窗」及「截图」权限
- 首次运行会弹出截图授权,请选择「总是允许」
-
代码适配
- 修改
CONFIG区域中的填写内容为你的实际数据 - 如果问卷页面结构不同,需调整
fillInput函数中的控件查找逻辑 - 部分应用可能使用自定义输入框,此时需改用图像识别方式
- 修改
-
调试建议
- 先在控制台查看日志输出,确认每一步是否成功
- 如果找不到控件,可使用「设备调试」工具查看实际控件树
- 适当增加
sleep时间以确保页面加载完成
-
注意事项
- 不同手机屏幕分辨率可能导致坐标偏移,建议使用控件查找而非绝对坐标
- 微信版本更新可能改变界面结构,脚本需定期维护
- 自动化操作可能违反应用服务条款,请自行承担风险
详细的技术文档和 API 接口说明,请访问:https://docs.hamibot.com/
ℹ️ 内容由 AI 生成,可能不准确,请注意核实