function selectMaxBuyCount() {
try {
log(📦 自动识别最大可购数量...);
let stockElem = textMatches(/库存|剩余|共|现货|可售|限购|每人限/).findOne(2000);
let maxCount = 1;
if (stockElem) {
let stockText = stockElem.text();
maxCount = parseInt(stockText.match(/\d+/)[0]) || 1;
}
const customMax = 5;
maxCount = Math.min(maxCount, customMax);
log(✅ 最大可购:${maxCount}件);

let countArea = textMatches(/^\d+$/).findOne(1500) 
              || textContains("件").findOne(1500) 
              || descMatches(/数量|购买数量/).findOne(1500);
if (!countArea) {
  log(`⚠️  无数量选择区,默认1件`);
  return;
}
countArea.click();
sleep(600);

let addBtn = text("+").findOne(1200) 
           || desc("增加|加").findOne(1200) 
           || className("android.widget.ImageView").descMatches(/数量加/).findOne(1200);
if (!addBtn) {
  log(`⚠️  无加号按钮,默认当前数量`);
  return;
}

let currentCount = 1;
while (currentCount < maxCount) {
  addBtn.click();
  currentCount++;
  sleep(CONFIG.clickDelay + Math.random() * 100);
  let checkNum = textMatches(/^\d+$/).findOne(300);
  if (checkNum && parseInt(checkNum.text()) === currentCount - 1) {
    log(`✅ 已达最大数量`);
    break;
  }
}
log(`✅ 已选:${currentCount}件`);

} catch (e) {
log(⚠️ 数量选择异常,默认1件);
}
}把这个放在hamibot中直接使用的代码发给我

HAMI_3753024776 · 18 小时前

回答

Hamibot AI
1
· 18 小时前
// 文档地址 https://docs.hamibot.com/
function selectMaxBuyCount() {
  try {
    log(`📦 自动识别最大可购数量...`);
    let stockElem = textMatches(/库存|剩余|共|现货|可售|限购|每人限/).findOne(2000);
    let maxCount = 1;
    if (stockElem) {
      let stockText = stockElem.text();
      maxCount = parseInt(stockText.match(/\d+/)[0]) || 1;
    }
    const customMax = 5;
    maxCount = Math.min(maxCount, customMax);
    log(`✅ 最大可购:${maxCount}件`);
    
    let countArea = textMatches(/^\d+$/).findOne(1500) 
                  || textContains("件").findOne(1500) 
                  || descMatches(/数量|购买数量/).findOne(1500);
    if (!countArea) {
      log(`⚠️  无数量选择区,默认1件`);
      return;
    }
    countArea.click();
    sleep(600);
    
    let addBtn = text("+").findOne(1200) 
               || desc("增加|加").findOne(1200) 
               || className("android.widget.ImageView").descMatches(/数量加/).findOne(1200);
    if (!addBtn) {
      log(`⚠️  无加号按钮,默认当前数量`);
      return;
    }
    
    let currentCount = 1;
    while (currentCount < maxCount) {
      addBtn.click();
      currentCount++;
      sleep(300 + Math.random() * 100); // CONFIG.clickDelay is not defined, using default value
      let checkNum = textMatches(/^\d+$/).findOne(300);
      if (checkNum && parseInt(checkNum.text()) === currentCount - 1) {
        log(`✅ 已达最大数量`);
        break;
      }
    }
    log(`✅ 已选:${currentCount}件`);
  } catch (e) {
    log(`⚠️  数量选择异常,默认1件`);
  }
}

// 调用函数示例
auto.waitFor(); // 确保无障碍服务已启用
selectMaxBuyCount();
ℹ️ 本回答由 AI 生成,内容仅供参考