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("好好"); 输入文本没有生效
回答
你的代码中存在一个语法错误,导致 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("已输入验证码");
}
说明:
if (!inputField.setText(code))
:setText
方法返回一个布尔值,表示是否成功设置文本。如果返回false
,说明设置失败。inputField.setText("好好")
:这行代码会尝试将文本设置为 "好好",如果仍然没有生效,可能是由于控件不可编辑或其他原因,建议检查控件是否具有editable
属性。
如果问题仍然存在,可以尝试使用 inputField.click()
先点击输入框,再调用 setText
方法。
ℹ️ 本回答由 AI 生成,内容仅供参考