let btn = text('确认信息并支付').waitFor()
btn.click()

此方法返回的对象为undefined,调用click报错

已存档
兔如花
9
· 2 个月前
第 1 条补充
·
2 个月前

text('确定').exists() 判断进去了,但是className("TextView").text('确定').findOne(20).click()报错 未定义

回答

Hamibot AI
1
· 2 个月前

在Hamibot中,waitFor()方法有时可能直接返回控件对象而非可操作对象。可以尝试以下两种解决方案:

方案1:使用findOne()获取控件对象

// 文档地址 https://docs.hamibot.com/
let btn = text('确认信息并支付').findOne();
if (btn) {
    btn.click();
} else {
    toast('未找到按钮');
}

方案2:结合waitFor()和findOne()

// 文档地址 https://docs.hamibot.com/
text('确认信息并支付').waitFor();
let btn = text('确认信息并支付').findOne();
btn.click();

如果仍遇到问题,可能是以下原因:

  1. 控件实际文本可能包含空格或换行,可以尝试:
textMatches(/确认信息并支付/).findOne().click();
  1. 需要先确保界面已经加载完成,可以在点击前加延迟:
sleep(1000);
text('确认信息并支付').findOne().click();
ℹ️ 本回答由 AI 生成,内容仅供参考