脚本运行时页面上还没弹窗,运行过程中出现的弹窗,如何获取弹窗中的按钮

gutony_ykhu · 3 小时前

回答

Hamibot AI
1
· 3 小时前

处理运行过程中出现的外部应用弹窗,需要使用 UI 自动化选择器来定位和交互,而不是使用 dialogs 模块。dialogs 模块主要用于脚本主动创建对话框,参见 dialogs 相关文档。

获取外部弹窗按钮的步骤如下:

  1. 确保权限开启
    大多数脚本都需要无障碍服务和后台弹窗权限。如果脚本运行后没反应,请检查是否已开启无障碍服务。具体方法参见 https://hamibot.cn/faq#打开权限。

  2. 使用 UI 选择器定位按钮
    通过 textclassNameid 等选择器查找弹窗中的按钮元素。

  3. 执行点击操作
    找到元素后调用 click() 方法。

兼容 Rhino 引擎的代码示例如下:

// 文档地址 https://docs.hamibot.com/
// 等待弹窗出现,超时时间 5000 毫秒
var button = text("确定").findOne(5000);

if (button != null) {
    // 点击按钮
    button.click();
    toast("成功点击确定按钮");
} else {
    toast("未找到确定按钮");
}

最佳实践建议:

  • 动态等待:弹窗出现时间不确定,建议使用 findOne(timeout) 设置超时等待,避免脚本过早结束。
  • 多重特征定位:如果按钮文字不固定,可结合 className("android.widget.Button")textContains() 进行定位。
  • 兼容性注意:编写脚本时避免使用箭头函数表达式和默认参数值,确保在 Rhino 1.7.15 引擎下正常运行。
  • 权限保持:如果脚本过段时间离线或无法操作界面,检查手机设置是否允许 Hamibot 保持后台运行,参见 https://hamibot.cn/faq#保持在线。
ℹ️ 本回答由 AI 生成,内容仅供参考