回答
在 Hamibot 中,可以通过控件 ID、文本内容、布局属性等来识别和定位弹窗中的内容。以下是一个示例代码,展示如何检测并点击淘宝加入购物车后的弹窗中的“加入购物车”按钮:
// 文档地址 https://docs.hamibot.com/
// 启动一个后台线程来监控弹窗
threads.start(function () {
const check = function () {
// 获取当前界面的 Activity 名称
let activity = currentActivity().toLowerCase();
// 检查是否是权限相关的 Activity(例如截图权限弹窗)
if (activity.indexOf('permission') !== -1) {
// 检查弹窗标题是否包含 "Hamibot"
if (id('com.android.systemui:id/dialog_title').textContains('Hamibot').exists()) {
// 点击确认按钮
id('android:id/button1').findOnce().click();
return;
}
}
// 检查是否是淘宝的 Activity
if (activity.indexOf('taobao') !== -1) {
// 检查弹窗中是否有 "加入购物车" 文本
if (text('加入购物车').exists()) {
// 点击 "加入购物车" 按钮
text('加入购物车').findOnce().click();
return;
}
}
// 500ms 后再次检查
setTimeout(check, 500);
};
check();
});
// 请求截图权限
if (!requestScreenCapture()) {
hamibot.exit(); // 权限获取失败时退出
}
threads.shutDownAll(); // 关闭监控线程
sleep(1000); // 等待弹窗消失
// 你的其他代码
let img = captureScreen();
// 这里继续编写图像处理/自动化操作代码...
说明:
currentActivity()
:获取当前界面的 Activity 名称。id('...')
:通过控件 ID 定位控件。text('...')
:通过文本内容定位控件。exists()
:检查控件是否存在。findOnce().click()
:找到控件并点击。
注意事项:
- 不同的弹窗可能有不同的控件 ID 或文本内容,需要根据实际情况调整代码。
- 如果弹窗无法识别,可以使用
toastLog(activity)
输出当前界面信息,帮助调试。
ℹ️ 本回答由 AI 生成,内容仅供参考