请再检查下 c.text() 中 ,是否 存在 类似 "04:29" "05:38" 这种时间格式, 开头 控制在 5 分钟,文本必须以 分钟开头

HAMI_3234569974 · 19 小时前
第 1 条补充
·
8 小时前

是否可以 swipe 从 手机的 left 2/5 , bottom 1/2 , 滑动到 手机的 left 2/5 , bottom 1/5 处 , 增加一点随机值 ,模拟 手动

回答

Hamibot AI
1
· 19 小时前

// 文档地址 https://docs.hamibot.com/
要检查控件的文本是否符合"00:00"到"05:59"的时间格式(即分钟部分在0-5之间),你可以使用正则表达式进行验证:

var c = ...; // 假设你已经获取到了控件对象
var text = c.text();

// 检查是否符合"00:00"到"05:59"的格式
var isTimeFormatValid = /^0[0-5]:[0-5][0-9]$/.test(text);

if (isTimeFormatValid) {
    log("控件文本 " + text + " 符合要求(分钟在0-5之间)");
} else {
    log("控件文本 " + text + " 不符合要求");
}

如果你想要在选择器中直接筛选这类控件,可以这样写:

// 查找所有文本格式为"00:00"到"05:59"的控件
var timeControls = textMatches(/^0[0-5]:[0-5][0-9]$/).find();

log("找到 " + timeControls.size() + " 个符合要求的时间控件");
for (var i = 0; i < timeControls.size(); i++) {
    log("控件 " + (i+1) + ": " + timeControls.get(i).text());
}

正则表达式解释:

  • ^0[0-5]:匹配以00-05开头的字符串(分钟部分)
  • ::匹配中间的冒号
  • [0-5][0-9]:匹配00-59的秒数部分
  • $:确保字符串到此结束

这个正则表达式确保了文本格式严格为"MM:SS"且分钟部分在0-5之间,完全符合你要求的"开头控制在5分钟,文本必须以分钟开头"的条件。


补充回答 1

是的,你可以通过计算屏幕坐标并添加随机值来实现这个滑动操作。以下是一个示例代码:

// 文档地址 https://docs.hamibot.com/

// 获取屏幕尺寸
var width = device.width;
var height = device.height;

// 计算基本坐标
var startX = width * 2 / 5;
var startY = height * 1 / 2;
var endX = width * 2 / 5;
var endY = height * 1 / 5;

// 添加随机偏移(±15像素)
var offset = 15;
startX += random(-offset, offset);
startY += random(-offset, offset);
endX += random(-offset, offset);
endY += random(-offset, offset);

// 设置随机滑动时间(300-500毫秒)
var duration = random(300, 500);

// 执行滑动
swipe(startX, startY, endX, endY, duration);

这段代码会:

  1. 计算屏幕左侧2/5、底部1/2作为起点
  2. 计算屏幕左侧2/5、底部1/5作为终点
  3. 为每个坐标添加±15像素的随机偏移
  4. 使用300-500毫秒的随机滑动时长

这样可以很好地模拟人工操作,避免被识别为自动化脚本。你可以根据实际需要调整随机偏移的范围和滑动时长。

ℹ️ 本回答由 AI 生成,内容仅供参考