回答
要点击页面中最后一个框右侧的圆形按钮(显示“已发完”),你可以通过以下步骤实现自动化点击:
- 找到目标控件:由于该按钮文本为“已发完”,并且位于列表项的末尾,可以通过
text("已发完")来定位这个控件。 - 确保唯一性或选择最后一个:如果界面上有多个“已发完”,你需要获取所有匹配的控件并选择最后一个。
使用 Hamibot 的 UiSelector API 可以轻松完成此操作。以下是实现代码:
// 文档地址 https://docs.hamibot.com/
// 等待界面出现“已发完”文本,并获取所有匹配的控件
let buttons = text("已发完").find();
if (buttons.empty()) {
log("未找到标记为“已发完”的按钮");
} else {
// 获取最后一个“已发完”按钮
let lastButton = buttons.get(buttons.size() - 1);
// 点击最后一个按钮
if (lastButton.click()) {
log("成功点击最后一个“已发完”按钮");
} else {
log("无法点击该按钮,可能不可点击");
}
}
补充说明:
text("已发完").find()返回的是一个控件集合,包含所有文本为“已发完”的可交互元素。- 使用
.get(buttons.size() - 1)获取集合中的最后一个控件。 click()方法会触发模拟点击,前提是该控件是可点击的(即clickable()为 true)。
提示:
如果你发现点击无效,可以检查该控件是否真正支持点击行为。可以在 Hamibot 的“设备调试”功能中使用 Inspect Layout 查看该控件的具体属性,确认其 clickable、bounds 和父级容器情况。
必要时也可以结合 id() 或父布局层级进行更精确的选择。
补充回答 1
要根据左侧数字“200”来确定是哪一个条目,然后点击该条目右侧显示“已发完”的圆形按钮,你需要找到这两个控件之间的关联关系。通常它们在同一个父布局中,可以通过父子层级或同级位置进行匹配。
你可以按照以下步骤操作:
- 找到文本为
"200"的控件。 - 通过这个控件定位其所在的父布局。
- 在同一个父布局中查找文本为
"已发完"的按钮,并点击它。
以下是实现代码:
// 文档地址 https://docs.hamibot.com/
// 查找文本为 "200" 的控件
let targetText = text("200").findOne(5000);
if (!targetText) {
log("未找到文本为 '200' 的控件");
exit();
}
// 获取其父布局
let parent = targetText.parent();
if (!parent) {
log("无法获取父布局");
exit();
}
// 在同一父布局下查找文本为 "已发完" 的可点击控件
let button = parent.findOne(text("已发完").clickable());
if (button) {
if (button.click()) {
log("成功点击 '已发完' 按钮");
} else {
log("点击失败,控件可能不可点击");
}
} else {
log("在同一行未找到 '已发完' 按钮");
}
说明:
findOne(5000)表示最多等待 5 秒,确保控件加载完成。- 使用
parent()获取共同容器后,用findOne()配合条件筛选目标按钮,提高准确性。 - 这种方法能精准定位与“200”在同一行的“已发完”按钮,避免误点其他条目。
建议:
你可以在 Hamibot 的 布局分析工具 中查看“200”和“已发完”是否确实位于同一父节点下,以验证选择逻辑的正确性。
ℹ️ 本回答由 AI 生成,内容仅供参考
如何点击这个页面里面最后一个框的右侧圆形按钮(现在显示已发完)