// 先打开 PhonePe 应用 console.log("正在启动 PhonePe 应用..."); app.launch("com.phonepe.app"); // 等待应用加载 // sleep(3000); // 简化:直接通过 id 查找并点击,找不到则坐标点击后备 console.log("开始搜索 tvPay (com.phonepe.app:id/tvPay) 元素..."); var el = id("com.phonepe.app:id/tvPay").findOne(1000); if (el) { console.log("找到 tvPay,尝试 click()..."); if (!el.click()) { var b = el.bounds(); click(Math.floor((b.left + b.right) / 2), Math.floor((b.top + b.bottom) / 2)); } console.log("点击完成"); } else { console.log("未找到 tvPay,使用默认坐标点击作为后备"); // 请根据设备分辨率调整坐标 click(360, 1440); console.log("后备坐标点击已执行"); } // 等待支付界面加载 sleep(5000); // 填写金额 var amountEl = id("com.phonepe.app:id/et_amount").findOne(2000); if (amountEl) { amountEl.click(); sleep(300); amountEl.setText('1'); } else { input('1'); } sleep(1000); // 填写备注 var notesEl = id("com.phonepe.app:id/et_notes").findOne(2000); if (notesEl) { notesEl.click(); sleep(300); notesEl.setText('No Body'); } else { input('No Body'); } sleep(1000); // 点击继续 var proceedEl = id("com.phonepe.app:id/fl_proceed_bar_container").findOne(2000); if (proceedEl) { console.log("找到继续按钮,尝试 click()..."); // proceedEl.click(); click(360, 950); } else { console.log("未找到继续按钮,使用默认坐标点击作为后备"); click(360, 950); } sleep(3000); // 最后点击支付 click(360, 1436); // 点击支付 // 定义函数:查找并点击 clickable 的控件,包含指定文本 function findAndClickByText(text) { var elements = className('TextView').clickable(true).find(); console.log("找到 " + elements.length + " 个 clickable TextView 控件"); for (var i = 0; i < elements.length; i++) { var elementText = elements[i].text(); console.log("控件 " + (i + 1) + ": [" + elementText + "]"); if (elementText == text) { console.log("找到匹配的控件: " + text + ",点击中..."); elements[i].click(); sleep(300); return true; } } console.log("未找到包含 '" + text + "' 的控件"); return false; } // 输入 pin sleep(2000); console.log("开始使用 clickable 控件输入 PIN 1123..."); sleep(300); // 依次点击: 1, 1, 2, 3 var sequence = ['1', '1', '2', '3']; for (var j = 0; j < sequence.length; j++) { console.log("\\n第 " + (j + 1) + " 步: 查找并点击数字 " + sequence[j]); findAndClickByText(sequence[j]); } sleep(1000); click(600, 1418); console.log("PIN 输入完成,支付流程结束。");