|
|
´úÀíģʽ¼òÊé×Ô¶¯Á÷³Ì
- // AIWROK ÍêÕû×Ô¶¯»¯Á÷³Ì£ºÆô¶¯¼òÊé ¡ú ÎÒµÄ ¡ú дÎÄÕ ¡ú ÊäÈëÄÚÈÝ ¡ú ·¢²¼
- // ´úÀíģʽ¼òÊé×Ô¶¯Á÷³Ì
- print.log("===== ¼òÊéдÎÄÕÂÁ÷³ÌÆô¶¯ =====");
- print.time();
- // ========== ¹¤¾ßº¯Êý ==========
- function Ö´ÐÐShell(ÃüÁî) {
- var ½á¹û = agent.shell(ÃüÁî);
- if (!½á¹û) return "";
-
- var ½á¹û×Ö·û´® = "";
- if (typeof ½á¹û === "string") {
- ½á¹û×Ö·û´® = ½á¹û;
- } else if (½á¹û.toString) {
- ½á¹û×Ö·û´® = ½á¹û.toString();
- } else {
- ½á¹û×Ö·û´® = "" + ½á¹û;
- }
-
- var startIdx = -1;
- if (typeof ½á¹û×Ö·û´®.indexOf === "function") {
- startIdx = ½á¹û×Ö·û´®.indexOf("successMsg:");
- }
-
- if (startIdx !== -1) {
- var afterSuccess = ½á¹û×Ö·û´®.substring(startIdx + 11);
- var errorIdx = afterSuccess.indexOf(",errorMsg:");
- if (errorIdx !== -1) {
- var content = afterSuccess.substring(0, errorIdx);
- var endMarker = content.indexOf("UI hierchary dumped to:");
- if (endMarker !== -1) {
- content = content.substring(0, endMarker);
- }
- return "" + content.trim();
- }
- return "" + afterSuccess.trim();
- }
-
- return "" + ½á¹û×Ö·û´®;
- }
- function »ñÈ¡UI() {
- var ÁÙʱÎļþ = "/sdcard/ui_dump.xml";
- agent.shell("uiautomator dump --compressed " + ÁÙʱÎļþ + " 2>/dev/null");
- var ½á¹û = agent.shell("cat " + ÁÙʱÎļþ);
-
- if (!½á¹û) return "";
-
- var ½á¹û×Ö·û´® = "";
- if (typeof ½á¹û === "string") {
- ½á¹û×Ö·û´® = ½á¹û;
- } else if (½á¹û.toString) {
- ½á¹û×Ö·û´® = ½á¹û.toString();
- } else {
- ½á¹û×Ö·û´® = "" + ½á¹û;
- }
-
- var startIdx = -1;
- if (typeof ½á¹û×Ö·û´®.indexOf === "function") {
- startIdx = ½á¹û×Ö·û´®.indexOf("successMsg:");
- }
-
- var content = "";
- if (startIdx !== -1) {
- var afterSuccess = ½á¹û×Ö·û´®.substring(startIdx + 11);
- var errorIdx = afterSuccess.indexOf(",errorMsg:");
- if (errorIdx !== -1) {
- content = afterSuccess.substring(0, errorIdx);
- var endMarker = content.indexOf("UI hierchary dumped to:");
- if (endMarker !== -1) {
- content = content.substring(0, endMarker);
- }
- } else {
- content = afterSuccess;
- }
- content = content.trim();
- } else {
- content = ½á¹û×Ö·û´®;
- }
-
- return "" + content;
- }
- function ×Ö·û´®³¤¶È(str) {
- if (typeof str.length === "function") {
- return str.length();
- }
- return str.length || 0;
- }
- function »ñÈ¡µ±Ç°°üÃû() {
- var uiXml = »ñÈ¡UI();
- var m = uiXml.match(/package="([^"]+)"/);
- if (m) {
- return "" + m[1];
- }
- return "";
- }
- function ²éÕÒ°üº¬ÎÄ×ֵĽڵã(xml, ¹Ø¼ü´Ê) {
- var ½ÚµãÁбí = [];
- for (var i = 0; i < ¹Ø¼ü´Ê.length; i++) {
- var ´Ê = ¹Ø¼ü´Ê[i];
- var pos = 0;
- while (true) {
- pos = xml.indexOf('text="' + ´Ê + '"', pos);
- if (pos < 0) break;
- var boundsStart = xml.indexOf('bounds="', pos);
- if (boundsStart >= 0) {
- var boundsEnd = xml.indexOf('"', boundsStart + 8);
- if (boundsEnd >= 0) {
- var boundsStr = xml.substring(boundsStart + 8, boundsEnd);
- var m = boundsStr.match(/\[(\d+),(\d+)\]\[(\d+),(\d+)\]/);
- if (m) {
- var node = {
- text: ´Ê,
- x1: parseInt(m[1]),
- y1: parseInt(m[2]),
- x2: parseInt(m[3]),
- y2: parseInt(m[4]),
- cx: (parseInt(m[1]) + parseInt(m[3])) / 2,
- cy: (parseInt(m[2]) + parseInt(m[4])) / 2
- };
- ½ÚµãÁбí.push(node);
- }
- }
- }
- pos += ×Ö·û´®³¤¶È(´Ê);
- }
- }
- return ½ÚµãÁбí;
- }
- function ²éÕÒ°üº¬×ÊÔ´IDµÄ½Úµã(xml, ×ÊÔ´ID¹Ø¼ü´Ê) {
- var ½ÚµãÁбí = [];
- for (var i = 0; i < ×ÊÔ´ID¹Ø¼ü´Ê.length; i++) {
- var ¹Ø¼ü´Ê = ×ÊÔ´ID¹Ø¼ü´Ê[i];
- var pos = 0;
- while (true) {
- pos = xml.indexOf('resource-id="', pos);
- if (pos < 0) break;
- var idEnd = xml.indexOf('"', pos + 13);
- if (idEnd >= 0) {
- var resourceId = xml.substring(pos + 13, idEnd);
- if (resourceId.indexOf(¹Ø¼ü´Ê) !== -1) {
- var boundsStart = xml.indexOf('bounds="', pos);
- if (boundsStart >= 0) {
- var boundsEnd = xml.indexOf('"', boundsStart + 8);
- if (boundsEnd >= 0) {
- var boundsStr = xml.substring(boundsStart + 8, boundsEnd);
- var m = boundsStr.match(/\[(\d+),(\d+)\]\[(\d+),(\d+)\]/);
- if (m) {
- var node = {
- resourceId: resourceId,
- x1: parseInt(m[1]),
- y1: parseInt(m[2]),
- x2: parseInt(m[3]),
- y2: parseInt(m[4]),
- cx: (parseInt(m[1]) + parseInt(m[3])) / 2,
- cy: (parseInt(m[2]) + parseInt(m[4])) / 2
- };
- ½ÚµãÁбí.push(node);
- }
- }
- }
- }
- }
- pos = idEnd + 1;
- }
- }
- return ½ÚµãÁбí;
- }
- function ÊäÈëÎı¾(Îı¾, µã»÷X, µã»÷Y) {
- if (!µã»÷X) µã»÷X = 0.2;
- if (!µã»÷Y) µã»÷Y = 0.2;
-
- agent.clickPercent(µã»÷X, µã»÷Y);
- sleep.millisecond(ºÁÃë = 500);
-
- agent.shell("service call clipboard 4 i32 1 s16 '" + Îı¾ + "' i32 0");
- sleep.millisecond(ºÁÃë = 300);
- agent.shell("service call clipboard 3 i32 1 s16 '" + Îı¾ + "' i32 0");
- sleep.millisecond(ºÁÃë = 300);
-
- try {
- Clipboard.copy(Îı¾);
- sleep.millisecond(ºÁÃë = 300);
- } catch (e) {}
-
- print.log("✓ ¼ôÌù°åÒÑÉèÖÃÄÚÈÝ");
-
- agent.shell("input keyevent 279");
- sleep.second(Ãë = 1);
- }
- function ²éÕÒWebView½Úµã(xml) {
- var ½ÚµãÁбí = [];
- var pos = 0;
- while (true) {
- pos = xml.indexOf('class="android.webkit.WebView"', pos);
- if (pos < 0) break;
- var boundsStart = xml.indexOf('bounds="', pos);
- if (boundsStart >= 0) {
- var boundsEnd = xml.indexOf('"', boundsStart + 8);
- if (boundsEnd >= 0) {
- var boundsStr = xml.substring(boundsStart + 8, boundsEnd);
- var m = boundsStr.match(/\[(\d+),(\d+)\]\[(\d+),(\d+)\]/);
- if (m) {
- var node = {
- x1: parseInt(m[1]),
- y1: parseInt(m[2]),
- x2: parseInt(m[3]),
- y2: parseInt(m[4]),
- cx: (parseInt(m[1]) + parseInt(m[3])) / 2,
- cy: (parseInt(m[2]) + parseInt(m[4])) / 2
- };
- ½ÚµãÁбí.push(node);
- }
- }
- }
- pos += 25;
- }
- return ½ÚµãÁбí;
- }
- // ========== ÅäÖÃÇø ==========
- var APP°üÃû = "com.jianshu.haruki";
- var Ñ»·´ÎÊý = 3;
- var µ±Ç°Ñ»· = 0;
- var ÎÄÕ±êÌâ = "AI¼¼Êõ·¢Õ¹Ç÷ÊÆ";
- var ÎÄÕÂÕýÎÄ = "È˹¤ÖÇÄܼ¼ÊõÕýÔÚ·ÉËÙ·¢Õ¹£¬¸Ä±ä×ÅÎÒÃÇÉú»îµÄ·½·½ÃæÃæ¡£´Ó»úÆ÷ѧϰµ½Éî¶Èѧϰ£¬´Ó×ÔÈ»ÓïÑÔ´¦Àíµ½¼ÆËã»úÊÓ¾õ£¬AIµÄÓ¦Óó¡¾°Ô½À´Ô½¹ã·º¡£Î´À´£¬AI½«ÔÚ¸ü¶àÁìÓò·¢»ÓÖØÒª×÷Óã¬Íƶ¯Éç»á½ø²½ºÍ´´Ð·¢Õ¹¡£";
- // ========== »ñÈ¡É豸ÐÅÏ¢ (agentģʽ) ==========
- var wm½á¹û = Ö´ÐÐShell("wm size");
- var m = wm½á¹û.match(/(\d+)x(\d+)/);
- var ÆÁÄ»¿í = m ? parseInt(m[1]) : 1080;
- var ÆÁÄ»¸ß = m ? parseInt(m[2]) : 2400;
- print.log("ÆÁÄ»³ß´ç£º" + ÆÁÄ»¿í + " x " + ÆÁÄ»¸ß);
- print.log("´úÀí״̬£º" + (agent.isOpen() ? "ÒÑ¿ªÆô" : "먦Æô"));
- print.log("Ä¿±êAPP£º" + APP°üÃû + " (¼òÊé)");
- // ========================================
- // Ö÷Ñ»·¿ªÊ¼
- // ========================================
- for (µ±Ç°Ñ»· = 1; µ±Ç°Ñ»· <= Ñ»·´ÎÊý; µ±Ç°Ñ»·++) {
- print.log("\n======================================");
- print.log("===== µÚ " + µ±Ç°Ñ»· + " / " + Ñ»·´ÎÊý + " ´ÎÑ»· =====");
- print.log("======================================");
- // ========================================
- // ²½Öè1£ºÆô¶¯¼òÊéAPP
- // ========================================
- print.log("\n========== ²½Öè1£ºÆô¶¯¼òÊéAPP ==========");
- var Æô¶¯³É¹¦ = false;
- var Æô¶¯³¢ÊÔ´ÎÊý = 0;
- var ×î´óÆô¶¯³¢ÊÔ = 3;
- while (!Æô¶¯³É¹¦ && Æô¶¯³¢ÊÔ´ÎÊý < ×î´óÆô¶¯³¢ÊÔ) {
- Æô¶¯³¢ÊÔ´ÎÊý++;
- try {
- agent.shell("monkey -p " + APP°üÃû + " -c android.intent.category.LAUNCHER 1");
- print.log("✓ µÚ" + Æô¶¯³¢ÊÔ´ÎÊý + "´Î³¢ÊÔÆô¶¯¼òÊé");
- } catch (e) {
- print.log("⚠ µÚ" + Æô¶¯³¢ÊÔ´ÎÊý + "´ÎÆô¶¯Ê§°Ü£º" + e.message);
- }
-
- sleep.second(Ãë = 5);
-
- var µ±Ç°Ò³Ãæ°üÃû = »ñÈ¡µ±Ç°°üÃû();
- print.log("µ±Ç°Ò³Ãæ°üÃû£º" + µ±Ç°Ò³Ãæ°üÃû);
-
- if (µ±Ç°Ò³Ãæ°üÃû === APP°üÃû) {
- Æô¶¯³É¹¦ = true;
- print.log("✓ APPÆô¶¯³É¹¦");
- } else {
- print.log("⚠ µ±Ç°Ò³Ãæ²»ÊǼòÊ飬׼±¸ÖØÐÂÆô¶¯");
- }
- }
- if (!Æô¶¯³É¹¦) {
- print.log("✗ ¶à´Î³¢ÊÔÆô¶¯Ê§°Ü£¬Ìø¹ý±¾´ÎÑ»·");
- continue;
- }
- // ========================================
- // ²½Öè2£ºÉèÖÃADBÊäÈë·¨£¨Ö§³ÖÖÐÎÄÊäÈ룩
- // ========================================
- print.log("\n========== ²½Öè2£ºÉèÖÃADBÊäÈë·¨ ==========");
- try {
- var µ±Ç°ÊäÈë·¨ = Ö´ÐÐShell("settings get secure default_input_method");
- print.log("µ±Ç°Ä¬ÈÏÊäÈë·¨£º" + µ±Ç°ÊäÈë·¨);
-
- var adbKeyboard = "com.android.adbkeyboard/.AdbIME";
- if (µ±Ç°ÊäÈë·¨.indexOf("adbkeyboard") === -1) {
- print.log("µ±Ç°²»ÊÇADBÊäÈë·¨£¬³¢ÊÔÇл»");
- agent.shell("ime enable " + adbKeyboard);
- sleep.millisecond(ºÁÃë = 300);
- agent.shell("ime set " + adbKeyboard);
- sleep.millisecond(ºÁÃë = 500);
- print.log("✓ ÒÑÇл»µ½ADBÊäÈë·¨");
- } else {
- print.log("✓ µ±Ç°ÒÑÊÇADBÊäÈë·¨");
- }
- } catch (e) {
- print.log("⚠ ÉèÖÃADBÊäÈ뷨ʧ°Ü£º" + e.message);
- print.log("Ìáʾ£ºÇëÊÖ¶¯°²×°ADB Keyboard²¢ÉèÖÃΪĬÈÏÊäÈë·¨");
- }
- // ========================================
- // ²½Öè3£º²éÕÒ²¢µã»÷дÎÄÕ°´Å¥£¨Ðü¸¡Ç¦±Ê°´Å¥£©
- // ========================================
- print.log("\n========== ²½Öè3£º²éÕÒдÎÄÕ°´Å¥£¨Ðü¸¡Ç¦±Ê°´Å¥£©==========");
- function ²éÕÒÐü¸¡°´Å¥(xml) {
- var ½ÚµãÁбí = [];
-
- var fabClasses = [
- 'class="android.support.design.widget.FloatingActionButton"',
- 'class="com.google.android.material.floatingactionbutton.FloatingActionButton"',
- 'class="android.widget.ImageView"'
- ];
-
- for (var c = 0; c < fabClasses.length; c++) {
- var pos = 0;
- while (true) {
- pos = xml.indexOf(fabClasses[c], pos);
- if (pos < 0) break;
- var boundsStart = xml.indexOf('bounds="', pos);
- if (boundsStart >= 0) {
- var boundsEnd = xml.indexOf('"', boundsStart + 8);
- if (boundsEnd >= 0) {
- var boundsStr = xml.substring(boundsStart + 8, boundsEnd);
- var m = boundsStr.match(/\[(\d+),(\d+)\]\[(\d+),(\d+)\]/);
- if (m) {
- var x1 = parseInt(m[1]);
- var y1 = parseInt(m[2]);
- var x2 = parseInt(m[3]);
- var y2 = parseInt(m[4]);
- var cx = (x1 + x2) / 2;
- var cy = (y1 + y2) / 2;
- var width = x2 - x1;
- var height = y2 - y1;
- if (cx > ÆÁÄ»¿í * 0.6 && cy > ÆÁÄ»¸ß * 0.75 && width > 50 && height > 50) {
- var node = {
- x1: x1,
- y1: y1,
- x2: x2,
- y2: y2,
- cx: cx,
- cy: cy
- };
- ½ÚµãÁбí.push(node);
- }
- }
- }
- }
- pos += fabClasses[c].length;
- }
- }
-
- return ½ÚµãÁбí;
- }
- var ÕÒµ½Ð´ÎÄÕ°´Å¥ = false;
- var ³¢ÊÔ´ÎÊý3 = 0;
- var ×î´ó³¢ÊÔ´ÎÊý3 = 3;
- while (!ÕÒµ½Ð´ÎÄÕ°´Å¥ && ³¢ÊÔ´ÎÊý3 < ×î´ó³¢ÊÔ´ÎÊý3) {
- ³¢ÊÔ´ÎÊý3++;
- var Ê×Ò³UI = »ñÈ¡UI();
- var xml³¤¶È3 = ×Ö·û´®³¤¶È(Ê×Ò³UI);
-
- print.log("µÚ " + ³¢ÊÔ´ÎÊý3 + " ´Î³¢ÊÔ»ñÈ¡Ê×Ò³UI£¬³¤¶È£º" + xml³¤¶È3);
-
- if (xml³¤¶È3 < 100) {
- print.log("UIÊý¾Ý¹ý¶Ì£¬ÖØÊÔ");
- sleep.second(Ãë = 1);
- continue;
- }
-
- var Ðü¸¡°´Å¥Áбí = ²éÕÒÐü¸¡°´Å¥(Ê×Ò³UI);
-
- if (Ðü¸¡°´Å¥Áбí.length > 0) {
- var дÎÄÕ°´Å¥ = Ðü¸¡°´Å¥Áбí[0];
- var дÎÄÕÂX = дÎÄÕ°´Å¥.cx / ÆÁÄ»¿í;
- var дÎÄÕÂY = дÎÄÕ°´Å¥.cy / ÆÁÄ»¸ß;
- agent.clickPercent(дÎÄÕÂX, дÎÄÕÂY);
- print.log("✓ Òѵã»÷Ðü¸¡Ç¦±Ê°´Å¥£¬°Ù·Ö±È×ø±ê£º(" + дÎÄÕÂX.toFixed(4) + ", " + дÎÄÕÂY.toFixed(4) + ")");
- ÕÒµ½Ð´ÎÄÕ°´Å¥ = true;
- } else {
- var ±à¼×ÊÔ´ID½Úµã = ²éÕÒ°üº¬×ÊÔ´IDµÄ½Úµã(Ê×Ò³UI, ["write", "create", "edit", "publish", "fab"]);
-
- if (±à¼×ÊÔ´ID½Úµã.length > 0) {
- var ±à¼°´Å¥ = ±à¼×ÊÔ´ID½Úµã[0];
- var ±à¼X = (±à¼°´Å¥.x1 + ±à¼°´Å¥.x2) / 2 / ÆÁÄ»¿í;
- var ±à¼Y = (±à¼°´Å¥.y1 + ±à¼°´Å¥.y2) / 2 / ÆÁÄ»¸ß;
- agent.clickPercent(±à¼X, ±à¼Y);
- print.log("✓ Òѵã»÷дÎÄÕ°´Å¥£¨Í¨¹ý×ÊÔ´ID£©£¬°Ù·Ö±È×ø±ê£º(" + ±à¼X.toFixed(4) + ", " + ±à¼Y.toFixed(4) + ")");
- ÕÒµ½Ð´ÎÄÕ°´Å¥ = true;
- } else {
- var дÎÄÕ½ڵã = ²éÕÒ°üº¬ÎÄ×ֵĽڵã(Ê×Ò³UI, ["дÎÄÕÂ", "´´×÷", "±à¼", "д", "·¢²¼"]);
-
- if (дÎÄÕ½ڵã.length > 0) {
- var дÎÄÕ°´Å¥ = дÎÄÕ½ڵã[0];
- var дÎÄÕÂX = (дÎÄÕ°´Å¥.x1 + дÎÄÕ°´Å¥.x2) / 2 / ÆÁÄ»¿í;
- var дÎÄÕÂY = (дÎÄÕ°´Å¥.y1 + дÎÄÕ°´Å¥.y2) / 2 / ÆÁÄ»¸ß;
- agent.clickPercent(дÎÄÕÂX, дÎÄÕÂY);
- print.log("✓ Òѵã»÷¡¸" + дÎÄÕ°´Å¥.text + "¡¹£¬°Ù·Ö±È×ø±ê£º(" + дÎÄÕÂX.toFixed(4) + ", " + дÎÄÕÂY.toFixed(4) + ")");
- ÕÒµ½Ð´ÎÄÕ°´Å¥ = true;
- } else {
- print.log("✓ ʹÓÃĬÈÏ×ø±êµã»÷ÓÒϽÇÐü¸¡°´Å¥");
- agent.clickPercent(0.875, 0.91);
- ÕÒµ½Ð´ÎÄÕ°´Å¥ = true;
- }
- }
- }
- }
- if (!ÕÒµ½Ð´ÎÄÕ°´Å¥) {
- print.log("✗ ¶à´Î³¢ÊÔδÕÒµ½Ð´ÎÄÕ°´Å¥£¬Ìø¹ý±¾´ÎÑ»·");
- continue;
- }
- sleep.second(Ãë = 3);
- // ========================================
- // ²½Öè4£ºÊäÈëÎÄÕ±êÌ⣨WebView±à¼Æ÷£©
- // ========================================
- print.log("\n========== ²½Öè4£ºÊäÈëÎÄÕ±êÌâ ==========");
- var ±êÌâÊäÈë³É¹¦ = false;
- var ³¢ÊÔ´ÎÊý4 = 0;
- var ×î´ó³¢ÊÔ´ÎÊý4 = 3;
- while (!±êÌâÊäÈë³É¹¦ && ³¢ÊÔ´ÎÊý4 < ×î´ó³¢ÊÔ´ÎÊý4) {
- ³¢ÊÔ´ÎÊý4++;
- var ±à¼Ò³ÃæUI = »ñÈ¡UI();
- var xml³¤¶È4 = ×Ö·û´®³¤¶È(±à¼Ò³ÃæUI);
-
- print.log("µÚ " + ³¢ÊÔ´ÎÊý4 + " ´Î³¢ÊÔ»ñÈ¡±à¼Ò³ÃæUI£¬³¤¶È£º" + xml³¤¶È4);
-
- if (xml³¤¶È4 < 100) {
- print.log("UIÊý¾Ý¹ý¶Ì£¬ÖØÊÔ");
- sleep.second(Ãë = 1);
- continue;
- }
-
- var webView½Úµã = ²éÕÒWebView½Úµã(±à¼Ò³ÃæUI);
-
- if (webView½Úµã.length > 0) {
- var webView = webView½Úµã[0];
- var µã»÷X = (webView.x1 + webView.x2) / 2 / ÆÁÄ»¿í;
- var µã»÷Y = (webView.y1 + 200) / ÆÁÄ»¸ß;
- print.log("✓ ×¼±¸ÔÚWebView±à¼ÇøÓòÊäÈë±êÌ⣬°Ù·Ö±È×ø±ê£º(" + µã»÷X.toFixed(4) + ", " + µã»÷Y.toFixed(4) + ")");
-
- ÊäÈëÎı¾(ÎÄÕ±êÌâ, µã»÷X, µã»÷Y);
- sleep.millisecond(ºÁÃë = 500);
- agent.shell("input keyevent 66");
- sleep.millisecond(ºÁÃë = 300);
- print.log("✓ ±êÌâÊäÈëÍê³É");
- ±êÌâÊäÈë³É¹¦ = true;
- } else {
- print.log("⚠ δÕÒµ½WebView½Úµã£¬Ö±½Óµã»÷±à¼ÇøÓò");
- ÊäÈëÎı¾(ÎÄÕ±êÌâ, 0.2, 0.6);
- sleep.millisecond(ºÁÃë = 500);
- agent.shell("input keyevent 66");
- sleep.millisecond(ºÁÃë = 300);
- print.log("✓ ±êÌâÊäÈëÍê³É");
- ±êÌâÊäÈë³É¹¦ = true;
- }
- }
- sleep.second(Ãë = 2);
- // ========================================
- // ²½Öè5£ºÊäÈëÎÄÕÂÕýÎÄ£¨WebView±à¼Æ÷£©
- // ========================================
- print.log("\n========== ²½Öè5£ºÊäÈëÎÄÕÂÕýÎÄ ==========");
- var ÕýÎÄÊäÈë³É¹¦ = false;
- var ³¢ÊÔ´ÎÊý5 = 0;
- var ×î´ó³¢ÊÔ´ÎÊý5 = 3;
- while (!ÕýÎÄÊäÈë³É¹¦ && ³¢ÊÔ´ÎÊý5 < ×î´ó³¢ÊÔ´ÎÊý5) {
- ³¢ÊÔ´ÎÊý5++;
- var ±à¼Ò³ÃæUI2 = »ñÈ¡UI();
- var xml³¤¶È5 = ×Ö·û´®³¤¶È(±à¼Ò³ÃæUI2);
-
- print.log("µÚ " + ³¢ÊÔ´ÎÊý5 + " ´Î³¢ÊÔ»ñÈ¡±à¼Ò³ÃæUI£¬³¤¶È£º" + xml³¤¶È5);
-
- if (xml³¤¶È5 < 100) {
- print.log("UIÊý¾Ý¹ý¶Ì£¬ÖØÊÔ");
- sleep.second(Ãë = 1);
- continue;
- }
-
- var webView½Úµã2 = ²éÕÒWebView½Úµã(±à¼Ò³ÃæUI2);
-
- if (webView½Úµã2.length > 0) {
- var webView2 = webView½Úµã2[0];
- var µã»÷X2 = (webView2.x1 + webView2.x2) / 2 / ÆÁÄ»¿í;
- var µã»÷Y2 = (webView2.y1 + webView2.y2) / 2 / ÆÁÄ»¸ß;
- print.log("✓ ×¼±¸ÔÚWebViewÕýÎÄÇøÓòÊäÈ룬°Ù·Ö±È×ø±ê£º(" + µã»÷X2.toFixed(4) + ", " + µã»÷Y2.toFixed(4) + ")");
-
- ÊäÈëÎı¾(ÎÄÕÂÕýÎÄ, µã»÷X2, µã»÷Y2);
- sleep.millisecond(ºÁÃë = 500);
- print.log("✓ ÕýÎÄÊäÈëÍê³É");
- ÕýÎÄÊäÈë³É¹¦ = true;
- } else {
- print.log("⚠ δÕÒµ½WebView½Úµã£¬³¢ÊÔµã»÷Ò³ÃæÖмäÇøÓò");
- ÊäÈëÎı¾(ÎÄÕÂÕýÎÄ, 0.3, 0.4);
- sleep.millisecond(ºÁÃë = 500);
- print.log("✓ ÕýÎÄÊäÈëÍê³É");
- ÕýÎÄÊäÈë³É¹¦ = true;
- }
- }
- sleep.second(Ãë = 2);
- // ========================================
- // ²½Öè6£ºµã»÷·¢²¼°´Å¥
- // ========================================
- print.log("\n========== ²½Öè6£ºµã»÷·¢²¼°´Å¥ ==========");
- var ÕÒµ½·¢²¼°´Å¥ = false;
- var ³¢ÊÔ´ÎÊý6 = 0;
- var ×î´ó³¢ÊÔ´ÎÊý6 = 3;
- while (!ÕÒµ½·¢²¼°´Å¥ && ³¢ÊÔ´ÎÊý6 < ×î´ó³¢ÊÔ´ÎÊý6) {
- ³¢ÊÔ´ÎÊý6++;
- var ±à¼Ò³ÃæUI3 = »ñÈ¡UI();
- var xml³¤¶È6 = ×Ö·û´®³¤¶È(±à¼Ò³ÃæUI3);
-
- print.log("µÚ " + ³¢ÊÔ´ÎÊý6 + " ´Î³¢ÊÔ»ñÈ¡±à¼Ò³ÃæUI£¬³¤¶È£º" + xml³¤¶È6);
-
- if (xml³¤¶È6 < 100) {
- print.log("UIÊý¾Ý¹ý¶Ì£¬ÖØÊÔ");
- sleep.second(Ãë = 1);
- continue;
- }
-
- var ·¢²¼½Úµã = ²éÕÒ°üº¬ÎÄ×ֵĽڵã(±à¼Ò³ÃæUI3, ["·¢²¼", "·¢²¼ÎÄÕÂ", "±£´æ", "Íê³É"]);
-
- if (·¢²¼½Úµã.length > 0) {
- var ·¢²¼°´Å¥ = ·¢²¼½Úµã[0];
- var ·¢²¼X = (·¢²¼°´Å¥.x1 + ·¢²¼°´Å¥.x2) / 2 / ÆÁÄ»¿í;
- var ·¢²¼Y = (·¢²¼°´Å¥.y1 + ·¢²¼°´Å¥.y2) / 2 / ÆÁÄ»¸ß;
- agent.clickPercent(·¢²¼X, ·¢²¼Y);
- print.log("✓ Òѵã»÷¡¸" + ·¢²¼°´Å¥.text + "¡¹£¬°Ù·Ö±È×ø±ê£º(" + ·¢²¼X.toFixed(4) + ", " + ·¢²¼Y.toFixed(4) + ")");
- ÕÒµ½·¢²¼°´Å¥ = true;
- } else {
- var ·¢²¼×ÊÔ´ID½Úµã = ²éÕÒ°üº¬×ÊÔ´IDµÄ½Úµã(±à¼Ò³ÃæUI3, ["publish", "save", "done", "submit"]);
-
- if (·¢²¼×ÊÔ´ID½Úµã.length > 0) {
- var ·¢²¼°´Å¥ = ·¢²¼×ÊÔ´ID½Úµã[0];
- var ·¢²¼X = (·¢²¼°´Å¥.x1 + ·¢²¼°´Å¥.x2) / 2 / ÆÁÄ»¿í;
- var ·¢²¼Y = (·¢²¼°´Å¥.y1 + ·¢²¼°´Å¥.y2) / 2 / ÆÁÄ»¸ß;
- agent.clickPercent(·¢²¼X, ·¢²¼Y);
- print.log("✓ Òѵã»÷·¢²¼°´Å¥£¨Í¨¹ý×ÊÔ´ID£©£¬°Ù·Ö±È×ø±ê£º(" + ·¢²¼X.toFixed(4) + ", " + ·¢²¼Y.toFixed(4) + ")");
- ÕÒµ½·¢²¼°´Å¥ = true;
- } else {
- print.log("⚠ δÕÒµ½·¢²¼°´Å¥£¬³¢ÊÔµã»÷ÓÒÉϽÇ");
- agent.clickPercent(0.9, 0.07);
- print.log("✓ ʹÓÃĬÈÏ×ø±êµã»÷ÓÒÉϽÇ");
- ÕÒµ½·¢²¼°´Å¥ = true;
- }
- }
- }
- if (!ÕÒµ½·¢²¼°´Å¥) {
- print.log("✗ ¶à´Î³¢ÊÔδÕÒµ½·¢²¼°´Å¥");
- }
- sleep.second(Ãë = 3);
- // ========================================
- // ²½Öè7£º¹Ø±ÕAPP
- // ========================================
- print.log("\n========== ²½Öè7£º¹Ø±ÕAPP ==========");
- try {
- agent.shell("am force-stop " + APP°üÃû);
- print.log("✓ ÒѹرռòÊé");
- } catch (e) {
- print.log("⚠ ¹Ø±ÕAPPʧ°Ü£º" + e.message);
- }
- sleep.second(Ãë = 10);
- if (µ±Ç°Ñ»· < Ñ»·´ÎÊý) {
- print.log("\n========== µÈ´ýÏÂÒ»´ÎÑ»· ==========");
- sleep.second(Ãë = 10);
- }
- }
- // ========================================
- // ½á¹û»ã×Ü
- // ========================================
- print.timeEnd();
- print.log("\n======================================");
- print.log("===== ¼òÊéдÎÄÕÂÁ÷³ÌÖ´ÐÐÍê³É =====");
- print.log("ÎÄÕ±êÌ⣺" + ÎÄÕ±êÌâ);
- print.log("ÎÄÕÂÕýÎij¤¶È£º" + ÎÄÕÂÕýÎÄ.length + " ×Ö");
- print.log("======================================");
¸´ÖÆ´úÂë
|
|