let btn = text('确认信息并支付').waitFor()
btn.click()
此方法返回的对象为undefined,调用click报错
第 1 条补充
· 2 个月前
text('确定').exists() 判断进去了,但是className("TextView").text('确定').findOne(20).click()报错 未定义
回答
在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();
如果仍遇到问题,可能是以下原因:
- 控件实际文本可能包含空格或换行,可以尝试:
textMatches(/确认信息并支付/).findOne().click();
- 需要先确保界面已经加载完成,可以在点击前加延迟:
sleep(1000);
text('确认信息并支付').findOne().click();
ℹ️ 本回答由 AI 生成,内容仅供参考