下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:1133
AutoJS自动化原理的技术说明文章框架:
源码部分:【仅供学习参考】
// ======================
// 拼多多自动化脚本增强版
// AutoJS 4.1.1+ 兼容
// ======================
// 基础配置
const CONFIG = {
maxRetry: 3, // 最大重试次数
waitTime: 2000, // 基础等待时间(ms)
debugMode: true // 调试模式
};
// 主入口
auto.waitFor();
launchApp("拼多多");
sleep(CONFIG.waitTime);
// 核心功能类
class PddAutomator {
constructor() {
this.retryCount = 0;
}
// 搜索商品
searchProduct(keyword) {
try {
if (CONFIG.debugMode) console.log("开始搜索商品:", keyword);
let searchInput = id("search_input").findOne(CONFIG.waitTime);
if (searchInput) {
searchInput.setText(keyword);
sleep(1000);
id("search_button").findOne().click();
return true;
}
} catch (e) {
this._handleError(e, "searchProduct");
}
return false;
}
// 获取商品列表
getProductList() {
let products = [];
try {
let items = className("android.view.View")
.depth(15)
.find();
items.forEach(item => {
try {
let priceElement = item.findOne(className("android.widget.TextView")
.textMatches(/¥\s*\d+\.\d{2}/));
if (priceElement) {
let title = item.findOne(className("android.widget.TextView")
.depth(16));
products.push({
title: title ? title.text() : "未知商品",
price: parseFloat(priceElement.text().replace(/[^\d.]/g, '')),
element: item
});
}
} catch (e) {}
});
} catch (e) {
this._handleError(e, "getProductList");
}
return products;
}
// 选择最低价商品
selectLowestPrice(products) {
if (!products || products.length === 0) return null;
products.sort((a, b) => a.price - b.price);
return products[0];
}
// 自动下单流程
autoCheckout(product) {
try {
if (!product || !product.element) return false;
// 点击商品进入详情
product.element.click();
sleep(CONFIG.waitTime * 2);
// 处理规格选择
this._selectSpecifications();
// 加入购物车
let addCartBtn = text("加入购物车").findOne(CONFIG.waitTime);
if (addCartBtn) {
addCartBtn.click();
sleep(CONFIG.waitTime);
return true;
}
} catch (e) {
this._handleError(e, "autoCheckout");
}
return false;
}
// ========== 私有方法 ==========
_selectSpecifications() {
// 实现规格选择逻辑
let specBtn = text("选择规格").findOne(CONFIG.waitTime);
if (specBtn) {
specBtn.click();
sleep(1000);
// 默认选择第一个规格
let firstSpec = className("android.view.View")
.depth(20)
.clickable()
.findOne(CONFIG.waitTime);
if (firstSpec) firstSpec.click();
sleep(500);
text("确定").findOne(CONFIG.waitTime)?.click();
}
}
_handleError(e, funcName) {
if (CONFIG.debugMode) {
console.error(`[${funcName}] 发生错误:`, e);
}
this.retryCount++;
if (this.retryCount >= CONFIG.maxRetry) {
console.error("超过最大重试次数,终止操作");
exit();
}
}
}
// ======================
// 示例使用流程
// ======================
let automator = new PddAutomator();
// 1. 搜索商品
automator.searchProduct("手机");
// 2. 获取并筛选商品
sleep(3000);
let products = automator.getProductList();
let cheapest = automator.selectLowestPrice(products);
if (cheapest) {
console.log("找到最低价商品:", cheapest.title, "价格:", cheapest.price);
// 3. 自动下单
if (automator.autoCheckout(cheapest)) {
console.log("已成功加入购物车");
} else {
console.log("加入购物车失败");
}
} else {
console.log("未找到符合条件的商品");
}
// 返回首页
back();
sleep(1000);
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。