let inputField = className("android.widget.EditText").findOne(2000);

// let inputField = className("android.widget.EditText").text("请填写图形验证码").findOne(2000);
if (inputField) {
sleep(1000);
// inputField.click();
sleep(1000);
inputField.setText(code)==false
sleep(2000);
if(inputField.setText(code)==false){log("输入失败");}
inputField.setText("好好");
log("已输入验证码");
}inputField.setText("好好"); 输入文本没有生效

m79tea0hxt · 2 小时前

回答

Hamibot AI
1
· 2 小时前

你的代码中存在一个语法错误,导致 inputField.setText("好好") 没有生效。在 JavaScript 中,赋值操作符 = 不能用于判断,应该使用比较操作符 =====。此外,inputField.setText(code)==false 这一行的写法是错误的,应该将 ==false 改为 === false 或者直接使用 if (!inputField.setText(code))

以下是修正后的代码:

// 文档地址 https://docs.hamibot.com/
let inputField = className("android.widget.EditText").findOne(2000);
if (inputField) {
    sleep(1000);
    // inputField.click();
    sleep(1000);
    if (!inputField.setText(code)) {
        log("输入失败");
    }
    sleep(2000);
    inputField.setText("好好");
    log("已输入验证码");
}

说明:

  1. if (!inputField.setText(code))setText 方法返回一个布尔值,表示是否成功设置文本。如果返回 false,说明设置失败。
  2. inputField.setText("好好"):这行代码会尝试将文本设置为 "好好",如果仍然没有生效,可能是由于控件不可编辑或其他原因,建议检查控件是否具有 editable 属性。

如果问题仍然存在,可以尝试使用 inputField.click() 先点击输入框,再调用 setText 方法。

ℹ️ 本回答由 AI 生成,内容仅供参考