|
|
ʾÀýǧÎÊ×Ô¶¯²É¼¯ÎÄÕ±£´æ¼Çʱ¾
- // AIWROK ×Ô¶¯»¯Á÷³Ì£ºÆô¶¯Ç§ÎÊ ¡ú ÊäÈëÎÊÌâ ¡ú µã»÷·¢ËÍ ¡ú µÈ´ýAI»Ø´ð ¡ú ²É¼¯»Ø´ðÄÚÈÝ ¡ú ±£´æµ½Îļþ
- // È«³ÌʹÓà agent.getXml() »ñÈ¡½çÃæÔ´Âë
- // °üÃû£ºcom.aliyun.tongyi£¨Ç§ÎÊ£©
- print.log("===== ǧÎʶԻ°²É¼¯Á÷³ÌÆô¶¯ =====");
- print.time();
- // ========== ÅäÖÃÇø ==========
- var ǧÎʰüÃû = "com.aliyun.tongyi";
- // Êä³öÎļþ·¾¶£¨JSON¸ñʽ£¬UTF-8±àÂ룩
- var Êä³öÎļþ·¾¶ = "/sdcard/ǧÎʶԻ°¼Ç¼.txt";
- // Òª·¢Ë͵ÄÎÊÌâÁÐ±í£¨°´Ë³Ðò·¢ËÍ£©
- var Òª·¢Ë͵ÄÎÊÌâÁбí = [
- "ÄãºÃ£¬ÇëÓÃÒ»¾ä»°½éÉÜÄã×Ô¼º",
- "Öйúƽ°²¹ÉƱ×î½ü×ßÊÆÈçºÎ£¿",
- "ÕÐÉÌÒøÐгÖÓÐ3ÄêÂô³öÐèÒª½»¹ÉϢ˰Âð£¿"
- ];
- // ·¢ËͺóµÈ´ýAI»Ø´ðµÄ×î´óÃëÊý£¨ÕûÌ峬ʱ£¬×35Ã룩
- var µÈ´ý»Ø´ð³¬Ê±Ãë = 35;
- // ¼ì²âµ½Ð»شð³öÏÖºó£¬Ôٵȴý¶àÉÙÃëÈûشð¾¡Á¿Êä³öÍêÕû£¨È»ºóÖ±½Ó·µ»Ø£©
- var »Ø´ðÊä³öµÈ´ýÃë = 12;
- // ÿ¸öÎÊÌâÖ®¼äµÄ¼ä¸ôÃëÊý
- var ÎÊÌâ¼ä¸ôÃë = 2;
- // ========== »ñÈ¡É豸ÐÅÏ¢ ==========
- var ÆÁÄ»¿í = screen.getScreenWidth();
- var ÆÁÄ»¸ß = screen.getScreenHeight();
- print.log("ÆÁÄ»³ß´ç£º" + ÆÁÄ»¿í + " x " + ÆÁÄ»¸ß);
- print.log("´úÀí״̬£º" + (agent.isOpen() ? "ÒÑ¿ªÆô" : "먦Æô"));
- // ========== ¹¤¾ßº¯Êý ==========
- // »ñÈ¡ UI XML ×Ö·û´®£¨Ê¹Óà agent.getXml()£¬Ç¿ÖÆ×ªÎª×Ö·û´®£©
- function »ñÈ¡UI() {
- var xml = agent.getXml();
- // agent.getXml() ·µ»Ø¶ÔÏó£¬ÐèÇ¿ÖÆ×ªÎª×Ö·û´®
- return "" + xml;
- }
- // ×Ö·û´®³¤¶È¼æÈݺ¯Êý£¨±ÜÃâ Java String ¶ÔÏó .length() ·½·¨ÎÊÌ⣩
- function ×Ö·û´®³¤¶È(s) {
- var str = "" + s;
- return str.length;
- }
- // HTMLʵÌå½âÂ루ǧÎÊTextViewÖеĻ»ÐзûµÈ»á±»±àÂëΪ
- ' µÈ£©
- function ½âÂëHTMLʵÌå(s) {
- var str = "" + s;
- str = str.replace(/
- /g, "\n");
- str = str.replace(/
- /g, "\r");
- str = str.replace(/ /g, "\t");
- str = str.replace(/'/g, "'");
- str = str.replace(/"/g, '"');
- str = str.replace(/"/g, '"');
- str = str.replace(/'/g, "'");
- str = str.replace(/&/g, "&");
- str = str.replace(/</g, "<");
- str = str.replace(/>/g, ">");
- return str;
- }
- // ²É¼¯Ç§ÎÊ RecyclerView ÖÐËùÓг¤Îı¾ TextView£¨¼´AI»Ø´ð£©
- // ²ÎÊý Ñϸñ¹ýÂË: true=Åųý¶ÌÎı¾°´Å¥µÈ, false=²»¹ýÂË£¨ÓÃÓÚ¼ì²âлشð³öÏÖ£¬¸üÁéÃô£©
- function ²É¼¯AI»Ø´ðÁбí(xml, Ñϸñ¹ýÂË) {
- if (Ñϸñ¹ýÂË === undefined) Ñϸñ¹ýÂË = true;
- var xmlStr = "" + xml;
- var »Ø´ðÁбí = [];
- // ¶¨Î» RecyclerView ½Úµã£¨Ç§ÎÊÏûÏ¢ÁбíʹÓà RecyclerView£©
- var rvPattern = /<node[^>]*?class="androidx\.recyclerview\.widget\.RecyclerView"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
- var rvMatch;
- var ÏûÏ¢ÁбíÇøÓò = null;
- while ((rvMatch = rvPattern.exec(xmlStr)) !== null) {
- var rx1 = parseInt(rvMatch[1]);
- var ry1 = parseInt(rvMatch[2]);
- var rx2 = parseInt(rvMatch[3]);
- var ry2 = parseInt(rvMatch[4]);
- var ¸ß¶È = ry2 - ry1;
- var ¿í¶È = rx2 - rx1;
- if (¸ß¶È > 500 && ¿í¶È > ÆÁÄ»¿í * 0.8) {
- ÏûÏ¢ÁбíÇøÓò = {x1: rx1, y1: ry1, x2: rx2, y2: ry2};
- break;
- }
- }
- if (!ÏûÏ¢ÁбíÇøÓò) {
- print.log("⚠ δÕÒµ½ÏûÏ¢ÁбíRecyclerView½Úµã");
- return »Ø´ðÁбí;
- }
- print.log("✓ ÕÒµ½ÏûÏ¢ÁбíÇøÓò£º[" + ÏûÏ¢ÁбíÇøÓò.x1 + "," + ÏûÏ¢ÁбíÇøÓò.y1 + "][" + ÏûÏ¢ÁбíÇøÓò.x2 + "," + ÏûÏ¢ÁбíÇøÓò.y2 + "]");
- // ÌáÈ¡ÏûÏ¢ÁбíÇøÓòÄÚµÄËùÓÐ TextView£¨Á½½×¶ÎÆ¥Å䣺ÏÈÕҽڵ㣬ÔÙÌáÈ¡ÊôÐÔ£©
- var tvPattern = /<node[^>]*?class="android\.widget\.TextView"[^>]*?\/?>/g;
- var tvMatch;
- while ((tvMatch = tvPattern.exec(xmlStr)) !== null) {
- var tvNode = tvMatch[0];
- // ´Ó½ÚµãÖÐÌáÈ¡Îı¾£¨Ö§³ÖË«ÒýºÅºÍµ¥ÒýºÅ£©
- var textMatch = tvNode.match(/text="([^"]+)"/);
- if (!textMatch) {
- textMatch = tvNode.match(/text='([^']+)'/);
- }
- if (!textMatch) continue;
- var Îı¾ = textMatch[1];
- // ´Ó½ÚµãÖÐÌáÈ¡±ß½ç
- var boundsMatch = tvNode.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (!boundsMatch) continue;
- var tx1 = parseInt(boundsMatch[1]);
- var ty1 = parseInt(boundsMatch[2]);
- var tx2 = parseInt(boundsMatch[3]);
- var ty2 = parseInt(boundsMatch[4]);
- // Åжϸà TextView ÊÇ·ñÔÚÏûÏ¢ÁбíÇøÓòÄÚ
- var ÔÚÇøÓòÄÚ = (tx1 >= ÏûÏ¢ÁбíÇøÓò.x1 && tx2 <= ÏûÏ¢ÁбíÇøÓò.x2 &&
- ty1 >= ÏûÏ¢ÁбíÇøÓò.y1 && ty2 <= ÏûÏ¢ÁбíÇøÓò.y2);
- if (!ÔÚÇøÓòÄÚ) continue;
- var ½âÂëÎı¾ = ½âÂëHTMLʵÌå(Îı¾);
- // ÅųýÓû§ÏûÏ¢ÌØÕ÷£ºÎ»ÓÚÏûÏ¢ÁÐ±í¶¥²¿ÇøÓò£¨y×ø±ê½ÏС£©ÇÒÊǵ¥ÐжÌÎı¾
- var ÊÇÓû§ÏûÏ¢ = (ty1 < ÏûÏ¢ÁбíÇøÓò.y1 + 500) && (½âÂëÎı¾.indexOf("\n") === -1) && (×Ö·û´®³¤¶È(½âÂëÎı¾) < 100);
-
- // ÅųýËÑË÷²½ÖèÎı¾£¨°üº¬"²éѯ"¡¢"¼ìË÷"¡¢"µ÷ÑÐ"µÈ¹Ø¼ü´ÊµÄÊÇËÑË÷¼Æ»®£¬²»ÊÇ×îÖջشð£©
- var ÊÇËÑË÷²½Öè = (½âÂëÎı¾.indexOf("²éѯ") !== -1 || ½âÂëÎı¾.indexOf("¼ìË÷") !== -1 ||
- ½âÂëÎı¾.indexOf("µ÷ÑÐ") !== -1 || ½âÂëÎı¾.indexOf("È·ÈÏ") !== -1 ||
- ½âÂëÎı¾.indexOf("·ÖÎö") !== -1 || ½âÂëÎı¾.indexOf("²éÕÒ") !== -1) &&
- (×Ö·û´®³¤¶È(½âÂëÎı¾) < 500);
-
- // ÅųýÊÓÆµÍƼöÇøÓòµÄÎı¾£¨ÊÓÆµÍƼöͨ³£ÔÚAI»Ø´ðÏ·½£¬y×ø±ê½Ï´óÇÒÓÐÌØ¶¨ÌØÕ÷£©
- // AI»Ø´ðͨ³£ÔÚÏûÏ¢ÁÐ±í¶¥²¿ÇøÓò£¬ÊÓÆµÍƼöÔÚÏ·½
- var ÏûÏ¢Áбí¸ß¶È = ÏûÏ¢ÁбíÇøÓò.y2 - ÏûÏ¢ÁбíÇøÓò.y1;
- var ÊÇÊÓÆµÍƼö = (ty1 > ÏûÏ¢ÁбíÇøÓò.y1 + ÏûÏ¢Áбí¸ß¶È * 0.3) &&
- (½âÂëÎı¾.indexOf("±Ê¼Ç") !== -1 || ½âÂëÎı¾.indexOf("×÷Õß") !== -1 ||
- ×Ö·û´®³¤¶È(½âÂëÎı¾) < 30);
-
- if (Ñϸñ¹ýÂË) {
- if (!ÊÇÓû§ÏûÏ¢ && !ÊÇËÑË÷²½Öè && !ÊÇÊÓÆµÍƼö && (½âÂëÎı¾.indexOf("\n") !== -1 || ×Ö·û´®³¤¶È(½âÂëÎı¾) > 50)) {
- »Ø´ðÁбí.push(½âÂëÎı¾);
- }
- } else {
- if (!ÊÇÓû§ÏûÏ¢ && !ÊÇËÑË÷²½Öè && !ÊÇÊÓÆµÍƼö && ×Ö·û´®³¤¶È(½âÂëÎı¾) > 0) {
- »Ø´ðÁбí.push(½âÂëÎı¾);
- }
- }
- }
- return »Ø´ðÁбí;
- }
- // ²éÕÒÊäÈë¿òÖÐÐÄ×ø±ê£¨²éÕÒ hint Îı¾Îª"·¢ÏûÏ¢»ò°´×¡Ëµ»°..."µÄ TextView£©
- function ²éÕÒÊäÈë¿òÖÐÐÄ(xml) {
- var xmlStr = "" + xml;
- var inputIdx = xmlStr.indexOf('text="·¢ÏûÏ¢»ò°´×¡Ëµ»°..."');
- if (inputIdx === -1) {
- inputIdx = xmlStr.indexOf("text='·¢ÏûÏ¢»ò°´×¡Ëµ»°...'");
- }
- if (inputIdx !== -1) {
- var ¶Î = xmlStr.substring(inputIdx);
- var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (m) {
- print.log("✓ ÊäÈë¿ò¶¨Î»£ºhintÎı¾Æ¥Åä");
- return {
- x: (parseInt(m[1]) + parseInt(m[3])) / 2,
- y: (parseInt(m[2]) + parseInt(m[4])) / 2
- };
- }
- }
- var editTextPattern = /<node[^>]*?class="android\.widget\.EditText"[^>]*?\/?>/g;
- var etMatch;
- while ((etMatch = editTextPattern.exec(xmlStr)) !== null) {
- var etNode = etMatch[0];
- var boundsMatch = etNode.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (boundsMatch) {
- var ex1 = parseInt(boundsMatch[1]);
- var ey1 = parseInt(boundsMatch[2]);
- var ex2 = parseInt(boundsMatch[3]);
- var ey2 = parseInt(boundsMatch[4]);
-
- if (ey1 > ÆÁÄ»¸ß * 0.8) {
- print.log("✓ ÊäÈë¿ò¶¨Î»£ºEditTextÆ¥Åä");
- return {
- x: (ex1 + ex2) / 2,
- y: (ey1 + ey2) / 2
- };
- }
- }
- }
- var viewGroupPattern = /<node[^>]*?class="android\.view\.ViewGroup"[^>]*?clickable="true"[^>]*?\/?>/g;
- var vgMatch;
- while ((vgMatch = viewGroupPattern.exec(xmlStr)) !== null) {
- var vgNode = vgMatch[0];
- var boundsMatch = vgNode.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (boundsMatch) {
- var vx1 = parseInt(boundsMatch[1]);
- var vy1 = parseInt(boundsMatch[2]);
- var vx2 = parseInt(boundsMatch[3]);
- var vy2 = parseInt(boundsMatch[4]);
-
- var vWidth = vx2 - vx1;
- var vHeight = vy2 - vy1;
-
- if (vy1 > ÆÁÄ»¸ß * 0.8 && vWidth > ÆÁÄ»¿í * 0.4 && vWidth < ÆÁÄ»¿í * 0.8) {
- print.log("✓ ÊäÈë¿ò¶¨Î»£ºViewGroupÆ¥Åä");
- return {
- x: (vx1 + vx2) / 2,
- y: (vy1 + vy2) / 2
- };
- }
- }
- }
- print.log("⚠ δÕÒµ½ÊäÈë¿ò£¬Ê¹Óöµµ××ø±ê");
- return {
- x: ÆÁÄ»¿í * 0.4,
- y: ÆÁÄ»¸ß * 0.92
- };
- }
- // ²éÕÒ·¢ËͰ´Å¥×ø±ê
- // ǧÎÊÊäÈë¿òÏ·½ÓÒ²àµÄ°´Å¥£¬ÊäÈëÎÄ×Öºó»á±ä³É·¢ËͰ´Å¥
- function ²éÕÒ·¢ËͰ´Å¥ÖÐÐÄ(xml) {
- var xmlStr = "" + xml;
- // 1. ÓÅÏȲéÕÒÎÄ×Ö"·¢ËÍ"
- var sendTextIdx = xmlStr.indexOf('text="·¢ËÍ"');
- if (sendTextIdx === -1) {
- sendTextIdx = xmlStr.indexOf("text='·¢ËÍ'");
- }
- if (sendTextIdx !== -1) {
- var ¶Î = xmlStr.substring(sendTextIdx);
- var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (m) {
- print.log("✓ ·¢ËͰ´Å¥¶¨Î»£ºÎı¾Æ¥Åä");
- return {
- x: (parseInt(m[1]) + parseInt(m[3])) / 2,
- y: (parseInt(m[2]) + parseInt(m[4])) / 2
- };
- }
- }
- // 2. ²éÕÒÆÁÄ»µ×²¿ÇøÓòµÄµã»÷ÇøÓò£¨FrameLayout£©
- var clickablePattern = /<node[^>]*?clickable="true"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"[^>]*?\/?>/g;
- var clickMatch;
- var candidates = [];
- while ((clickMatch = clickablePattern.exec(xmlStr)) !== null) {
- var cx1 = parseInt(clickMatch[1]);
- var cy1 = parseInt(clickMatch[2]);
- var cx2 = parseInt(clickMatch[3]);
- var cy2 = parseInt(clickMatch[4]);
- if (cy1 > ÆÁÄ»¸ß * 0.85) {
- candidates.push({
- x1: cx1, y1: cy1, x2: cx2, y2: cy2,
- x: (cx1 + cx2) / 2,
- y: (cy1 + cy2) / 2
- });
- }
- }
- if (candidates.length > 0) {
- candidates.sort(function(a, b) {
- return b.x1 - a.x1;
- });
- print.log("✓ ÕÒµ½" + candidates.length + "¸öºòÑ¡°´Å¥£¬Ñ¡Ôñ×îÓÒ²àµÄ£¬×ø±ê(" + Math.round(candidates[0].x) + "," + Math.round(candidates[0].y) + ")");
- return {
- x: candidates[0].x,
- y: candidates[0].y
- };
- }
- // 3. ²éÕÒÆÁÄ»µ×²¿ÇøÓòµÄ FrameLayout£¨Ç§ÎÊ·¢ËͰ´Å¥ÌØÕ÷£©
- var flPattern = /<node[^>]*?class="android\.widget\.FrameLayout"[^>]*?\/?>/g;
- var flMatch;
- var flCandidates = [];
- while ((flMatch = flPattern.exec(xmlStr)) !== null) {
- var flNode = flMatch[0];
-
- if (flNode.indexOf('clickable="true"') === -1) continue;
-
- var boundsMatch = flNode.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (!boundsMatch) continue;
-
- var fx1 = parseInt(boundsMatch[1]);
- var fy1 = parseInt(boundsMatch[2]);
- var fx2 = parseInt(boundsMatch[3]);
- var fy2 = parseInt(boundsMatch[4]);
- if (fy1 > ÆÁÄ»¸ß * 0.85) {
- flCandidates.push({
- x1: fx1, y1: fy1, x2: fx2, y2: fy2,
- x: (fx1 + fx2) / 2,
- y: (fy1 + fy2) / 2
- });
- }
- }
- if (flCandidates.length > 0) {
- flCandidates.sort(function(a, b) {
- return b.x1 - a.x1;
- });
- print.log("✓ ÕÒµ½" + flCandidates.length + "¸öFrameLayoutºòÑ¡£¬Ñ¡Ôñ×îÓÒ²àµÄ£¬×ø±ê(" + Math.round(flCandidates[0].x) + "," + Math.round(flCandidates[0].y) + ")");
- return {
- x: flCandidates[0].x,
- y: flCandidates[0].y
- };
- }
- // 4. ¶µµ×£º»ùÓÚÆÁÄ»°Ù·Ö±È¶¨Î»·¢ËͰ´Å¥£¨ÊäÈë¿òÏ·½ÓҲࣩ
- print.log("⚠ ʹÓöµµ×²ßÂÔ¶¨Î»·¢ËͰ´Å¥£¬×ø±ê(" + Math.round(ÆÁÄ»¿í * 0.92) + "," + Math.round(ÆÁÄ»¸ß * 0.92) + ")");
- return {
- x: ÆÁÄ»¿í * 0.92,
- y: ÆÁÄ»¸ß * 0.92
- };
- }
- // Õ³ÌùÎı¾µ½µ±Ç°½¹µãÊäÈë¿ò£¨¼ôÌù°å·¨£¬¼æÈÝÖÐÎÄ£©
- function Õ³ÌùÎı¾(Îı¾) {
- try {
- Clipboard.copy("" + Îı¾);
- } catch (e) {
- print.log("⚠ Clipboard.copy ʧ°Ü£º" + e.message);
- }
- sleep.millisecond(ºÁÃë = 300);
- // Ë«±£ÏÕ£ºÍ¨¹ý shell д¼ôÌù°å
- try {
- agent.shell("service call clipboard 3 i32 1 s16 '" + Îı¾ + "' i32 0");
- } catch (e2) {
- // ºöÂÔ´íÎó
- }
- sleep.millisecond(ºÁÃë = 300);
- // ´¥·¢Õ³Ìù£ºKEYCODE_PASTE = 279
- agent.shell("input keyevent 279");
- sleep.second(Ãë = 1);
- print.log("✓ ÒÑÕ³ÌùÎı¾£º" + Îı¾);
- }
- // ²éÕÒ²¢µã»÷AI»Ø´ðµ×²¿µÄÕ¹¿ª°´Å¥£¨ÏòϼýÍ·£©
- // ǧÎʳ¤»Ø´ð»áÕÛµþÏÔʾ£¬ÐèÒªµã»÷µ×²¿ÏòϼýÍ·²ÅÄÜ¿´µ½ÍêÕûÄÚÈÝ
- function ²éÕÒ²¢µã»÷Õ¹¿ª°´Å¥(xml) {
- var xmlStr = "" + xml;
-
- // 1. ²éÕÒÏûÏ¢Áбíµ×²¿ÖмäµÄÐ¡ÇøÓòclickable½Úµã£¨ÏòϼýÍ·ÌØÕ÷£©
- var rvPattern = /<node[^>]*?class="androidx\.recyclerview\.widget\.RecyclerView"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
- var rvMatch;
- while ((rvMatch = rvPattern.exec(xmlStr)) !== null) {
- var rx1 = parseInt(rvMatch[1]);
- var ry1 = parseInt(rvMatch[2]);
- var rx2 = parseInt(rvMatch[3]);
- var ry2 = parseInt(rvMatch[4]);
- var ¸ß¶È = ry2 - ry1;
- if (¸ß¶È > 500) {
- var viewPattern = /<node[^>]*?clickable="true"[^>]*?\/?>/g;
- var viewMatch;
- while ((viewMatch = viewPattern.exec(xmlStr)) !== null) {
- var vNode = viewMatch[0];
- var boundsMatch = vNode.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (!boundsMatch) continue;
-
- var vx1 = parseInt(boundsMatch[1]);
- var vy1 = parseInt(boundsMatch[2]);
- var vx2 = parseInt(boundsMatch[3]);
- var vy2 = parseInt(boundsMatch[4]);
-
- var vWidth = vx2 - vx1;
- var vHeight = vy2 - vy1;
-
- var ÔÚÇøÓòÄÚ = (vx1 >= rx1 && vx2 <= rx2 && vy1 >= ry1 && vy2 <= ry2);
- var ÊÇС°´Å¥ = (vWidth < 200 && vHeight < 200);
- var Ôڵײ¿ = (vy1 > ry1 + ¸ß¶È * 0.7);
-
- if (ÔÚÇøÓòÄÚ && ÊÇС°´Å¥ && Ôڵײ¿) {
- var centerX = (vx1 + vx2) / 2;
- var centerY = (vy1 + vy2) / 2;
- agent.click(centerX, centerY);
- print.log("✓ Òѵã»÷Õ¹¿ª¼ýÍ·£¨ÏûÏ¢Áбíµ×²¿Ð¡°´Å¥£©£¬×ø±ê(" + Math.round(centerX) + "," + Math.round(centerY) + ")");
- sleep.second(Ãë = 2);
- return true;
- }
- }
- break;
- }
- }
- // 2. ²éÕÒÎı¾"²é¿´È«²¿"µÄ°´Å¥
- var textExpandIdx = xmlStr.indexOf('text="²é¿´È«²¿"');
- if (textExpandIdx === -1) {
- textExpandIdx = xmlStr.indexOf("text='²é¿´È«²¿'");
- }
- if (textExpandIdx !== -1) {
- var ¶Î = xmlStr.substring(textExpandIdx);
- var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (m) {
- var x = (parseInt(m[1]) + parseInt(m[3])) / 2;
- var y = (parseInt(m[2]) + parseInt(m[4])) / 2;
- agent.click(x, y);
- print.log("✓ Òѵã»÷²é¿´È«²¿°´Å¥£¬×ø±ê(" + Math.round(x) + "," + Math.round(y) + ")");
- sleep.second(Ãë = 2);
- return true;
- }
- }
- // 3. ²éÕÒ content-desc º¬"Õ¹¿ª"»ò"¸ü¶à"µÄ°´Å¥
- var expandIdx = xmlStr.indexOf('content-desc="Õ¹¿ª"');
- if (expandIdx === -1) {
- expandIdx = xmlStr.indexOf('content-desc="¸ü¶à"');
- }
- if (expandIdx !== -1) {
- var ¶Î2 = xmlStr.substring(expandIdx);
- var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (m2) {
- var x2 = (parseInt(m2[1]) + parseInt(m2[3])) / 2;
- var y2 = (parseInt(m2[2]) + parseInt(m2[4])) / 2;
- agent.click(x2, y2);
- print.log("✓ Òѵã»÷Õ¹¿ª°´Å¥£¨content-desc£©£¬×ø±ê(" + Math.round(x2) + "," + Math.round(y2) + ")");
- sleep.second(Ãë = 1);
- return true;
- }
- }
- // 4. ²éÕÒÎı¾"Õ¹¿ª"»ò"¸ü¶à"µÄ°´Å¥
- var textExpandIdx2 = xmlStr.indexOf('text="Õ¹¿ª"');
- if (textExpandIdx2 === -1) {
- textExpandIdx2 = xmlStr.indexOf('text="¸ü¶à"');
- }
- if (textExpandIdx2 !== -1) {
- var ¶Î3 = xmlStr.substring(textExpandIdx2);
- var m3 = ¶Î3.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (m3) {
- var x3 = (parseInt(m3[1]) + parseInt(m3[3])) / 2;
- var y3 = (parseInt(m3[2]) + parseInt(m3[4])) / 2;
- agent.click(x3, y3);
- print.log("✓ Òѵã»÷Õ¹¿ª°´Å¥£¨Îı¾Æ¥Å䣩£¬×ø±ê(" + Math.round(x3) + "," + Math.round(y3) + ")");
- sleep.second(Ãë = 1);
- return true;
- }
- }
- // 5. ²éÕÒÏûÏ¢Áбíµ×²¿ÇøÓòÄÚµÄImageView£¨¼ýͷͼ±ê£©
- var ivPattern = /<node[^>]*?class="android\.widget\.ImageView"[^>]*?clickable="true"[^>]*?\/?>/g;
- var ivMatch;
- while ((ivMatch = ivPattern.exec(xmlStr)) !== null) {
- var ivNode = ivMatch[0];
- var boundsMatch = ivNode.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- if (!boundsMatch) continue;
-
- var ivx1 = parseInt(boundsMatch[1]);
- var ivy1 = parseInt(boundsMatch[2]);
- var ivx2 = parseInt(boundsMatch[3]);
- var ivy2 = parseInt(boundsMatch[4]);
-
- var Ôڵײ¿ = (ivy1 > ÆÁÄ»¸ß * 0.5);
- var ÔÚÖмä = (ivx1 > ÆÁÄ»¿í * 0.3 && ivx2 < ÆÁÄ»¿í * 0.7);
-
- if (Ôڵײ¿ && ÔÚÖмä) {
- var centerX = (ivx1 + ivx2) / 2;
- var centerY = (ivy1 + ivy2) / 2;
- agent.click(centerX, centerY);
- print.log("✓ Òѵã»÷ImageView£¨¼ýͷͼ±ê£©£¬×ø±ê(" + Math.round(centerX) + "," + Math.round(centerY) + ")");
- sleep.second(Ãë = 2);
- return true;
- }
- }
- // 6. ×îÖÕ¶µµ×£ºµã»÷ÏûÏ¢Áбíµ×²¿ÖÐÐÄλÖã¨Õ¹¿ª¼ýͷͨ³£ÔÚÕâÀ
- var rvPattern2 = /<node[^>]*?class="androidx\.recyclerview\.widget\.RecyclerView"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
- var rvMatch2;
- while ((rvMatch2 = rvPattern2.exec(xmlStr)) !== null) {
- var rx1 = parseInt(rvMatch2[1]);
- var ry1 = parseInt(rvMatch2[2]);
- var rx2 = parseInt(rvMatch2[3]);
- var ry2 = parseInt(rvMatch2[4]);
- var ¸ß¶È = ry2 - ry1;
- if (¸ß¶È > 500) {
- var centerX = (rx1 + rx2) / 2;
- var bottomY = ry2 - 60;
- agent.click(centerX, bottomY);
- print.log("✓ Òѵã»÷ÏûÏ¢Áбíµ×²¿ÖÐÐÄ£¨¶µµ×Õ¹¿ª£©£¬×ø±ê(" + Math.round(centerX) + "," + Math.round(bottomY) + ")");
- sleep.second(Ãë = 2);
- return true;
- }
- }
- var pctX = ÆÁÄ»¿í / 2;
- var pctY = ÆÁÄ»¸ß * 0.75;
- agent.click(pctX, pctY);
- print.log("✓ Òѵã»÷ÆÁÄ»µ×²¿Öм䣨×îÖÕ¶µµ×£©£¬×ø±ê(" + Math.round(pctX) + "," + Math.round(pctY) + ")");
- sleep.second(Ãë = 1);
- return true;
- }
- // ´ÓXML½âÎö RecyclerView µÄ±ß½ç£¬È»ºóÔÚÆäÖ묶¯µ½µ×²¿
- function »¬¶¯ÏûÏ¢ÁÐ±íµ½µ×²¿(xml) {
- var xmlStr = "" + xml;
- var rvPattern = /<node[^>]*?class="androidx\.recyclerview\.widget\.RecyclerView"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
- var rvMatch;
- while ((rvMatch = rvPattern.exec(xmlStr)) !== null) {
- var rx1 = parseInt(rvMatch[1]);
- var ry1 = parseInt(rvMatch[2]);
- var rx2 = parseInt(rvMatch[3]);
- var ry2 = parseInt(rvMatch[4]);
- var ¸ß¶È = ry2 - ry1;
- if (¸ß¶È > 500) {
- var startX = (rx1 + rx2) / 2;
- var startY = ry1 + (ry2 - ry1) * 0.2;
- var endX = startX;
- var endY = ry1 + (ry2 - ry1) * 0.8;
- agent.swip(startX, startY, endX, endY, 500);
- print.log("✓ ÒÑÔÚRecyclerViewÄÚ»¬¶¯£¬ÇøÓò[" + rx1 + "," + ry1 + "][" + rx2 + "," + ry2 + "]");
- return;
- }
- }
- print.log("⚠ δÕÒµ½RecyclerView£¬Ê¹ÓÃÆÁÄ»°Ù·Ö±È»¬¶¯");
- agent.swip(ÆÁÄ»¿í / 2, ÆÁÄ»¸ß * 0.3, ÆÁÄ»¿í / 2, ÆÁÄ»¸ß * 0.8, 500);
- }
- // µÈ´ýAI»Ø´ðÍê³É
- // Âß¼£º
- // ½×¶Î1£ºµÈ´ýлشð³öÏÖ£¨Îı¾±ä»¯£©
- // ½×¶Î2£ºµã»÷Õ¹¿ª°´Å¥£¨ÔÚÏûÏ¢Áбíµ×²¿£©
- // ½×¶Î3£º¶¯Ì¬¼ì²â»Ø´ðÊÇ·ñÍê³É£¨Á¬Ðø2´Î¼ì²éÎı¾²»±ä£¬ÔòÈÏΪÍê³É£©
- // ²ÎÊý£º·¢ËÍǰµÄ×îºóÒ»ÌõAI»Ø´ðÎı¾£¨ÓÃÓڶԱȼì²âлشð£©
- // ·µ»Ø£ºÐ»شðµÄÎı¾ÄÚÈÝ
- function µÈ´ýAI»Ø´ðÍê³É(·¢ËÍǰµÄ×îºóÎı¾) {
- var ÒѺÄʱ = 0;
- var ¼ì²é¼ä¸ôÃë = 2;
- var ÒѼì²âµ½Ð»شð = false;
- var Òѵã»÷Õ¹¿ª°´Å¥ = false;
- var ÉÏ´ÎÎı¾ = "";
- var Îı¾²»±ä´ÎÊý = 0;
- var ÒѼì²âµ½Ë¼¿¼Íê³É = false;
- while (ÒѺÄʱ < µÈ´ý»Ø´ð³¬Ê±Ãë) {
- sleep.second(Ãë = ¼ì²é¼ä¸ôÃë);
- ÒѺÄʱ += ¼ì²é¼ä¸ôÃë;
- var xml = »ñÈ¡UI();
- var xmlStr = "" + xml;
- if (!ÒѼì²âµ½Ð»شð) {
- // ½×¶Î1£ºµÈ´ýлشð³öÏÖ
- var ¿íËÉÁбí = ²É¼¯AI»Ø´ðÁбí(xml, false);
- if (¿íËÉÁбí.length === 0) {
- continue;
- }
- var µ±Ç°×îºóÎı¾ = ¿íËÉÁбí[¿íËÉÁбí.length - 1];
- if (µ±Ç°×îºóÎı¾ !== ·¢ËÍǰµÄ×îºóÎı¾ && ×Ö·û´®³¤¶È(µ±Ç°×îºóÎı¾) > 0) {
- print.log("✓ ¼ì²âµ½Ð»شð³öÏÖ£¨" + ÒѺÄʱ + "Ã룩");
- ÒѼì²âµ½Ð»شð = true;
- ÉÏ´ÎÎı¾ = µ±Ç°×îºóÎı¾;
- }
- } else {
- // ½×¶Î2ºÍ3£ºµã»÷Õ¹¿ª°´Å¥²¢¼ì²âÍê³É
- var µ±Ç°Áбí = ²É¼¯AI»Ø´ðÁбí(xml, false);
- var µ±Ç°Îı¾ = "";
- if (µ±Ç°Áбí.length > 0) {
- µ±Ç°Îı¾ = µ±Ç°Áбí[µ±Ç°Áбí.length - 1];
- }
- // ¼ì²éÊÇ·ñÍê³É˼¿¼£¨¿íËÉÌõ¼þ£©
- if (!ÒѼì²âµ½Ë¼¿¼Íê³É && (xmlStr.indexOf("²Î¿¼") !== -1)) {
- print.log("✓ ¼ì²âµ½AI˼¿¼Íê³É£¨" + ÒѺÄʱ + "Ã룩");
- ÒѼì²âµ½Ë¼¿¼Íê³É = true;
- }
- // µã»÷Õ¹¿ª°´Å¥£¨ÔÚ¼ì²âµ½Ë¼¿¼Íê³ÉºóÁ¢¼´µã»÷£©
- if (!Òѵã»÷Õ¹¿ª°´Å¥ && ÒѼì²âµ½Ë¼¿¼Íê³É) {
- ²éÕÒ²¢µã»÷Õ¹¿ª°´Å¥(xml);
- Òѵã»÷Õ¹¿ª°´Å¥ = true;
- print.log("✓ Òѵã»÷Õ¹¿ª°´Å¥");
- }
- // Èç¹ûû¼ì²âµ½Ë¼¿¼Íê³É£¬µ«Îı¾ºÜ³¤£¬Ò²³¢ÊÔµã»÷Õ¹¿ª
- if (!Òѵã»÷Õ¹¿ª°´Å¥ && !ÒѼì²âµ½Ë¼¿¼Íê³É && ×Ö·û´®³¤¶È(µ±Ç°Îı¾) > 100 && ÒѺÄʱ >= 8) {
- ²éÕÒ²¢µã»÷Õ¹¿ª°´Å¥(xml);
- Òѵã»÷Õ¹¿ª°´Å¥ = true;
- print.log("✓ Îı¾½Ï³¤£¬³¢ÊÔµã»÷Õ¹¿ª°´Å¥");
- }
- // ¼ì²éÎı¾ÊÇ·ñÍ£Ö¹±ä»¯
- if (µ±Ç°Îı¾ === ÉÏ´ÎÎı¾) {
- Îı¾²»±ä´ÎÊý++;
- } else {
- Îı¾²»±ä´ÎÊý = 0;
- ÉÏ´ÎÎı¾ = µ±Ç°Îı¾;
- }
- // ÅжÏÍê³ÉÌõ¼þ£º
- // 1. Îı¾Á¬Ðø2´Î²»±ä
- // 2. ÇÒÎı¾³¤¶È´óÓÚ50
- // 3. ÇÒÒѵȴýÖÁÉÙ6Ã루ȷ±£Õ¹¿ªºóÓÐʱ¼äÏÔʾÍêÕûÄÚÈÝ£©
- if (Îı¾²»±ä´ÎÊý >= 2 && ×Ö·û´®³¤¶È(µ±Ç°Îı¾) > 50 && ÒѺÄʱ >= 6) {
- print.log("✓ ¼ì²âµ½»Ø´ðÍê³É£¨Îı¾Á¬Ðø²»±ä£©£¬·µ»Ø²É¼¯½á¹û");
- return µ±Ç°Îı¾;
- }
- // Èç¹ûÎı¾ºÜ¶Ìµ«Í£Ö¹±ä»¯ºÜ¾Ã£¬Ò²·µ»Ø
- if (Îı¾²»±ä´ÎÊý >= 4 && ×Ö·û´®³¤¶È(µ±Ç°Îı¾) > 10 && ÒѺÄʱ >= 10) {
- print.log("✓ Îı¾Í£Ö¹±ä»¯ÒѾ㬷µ»Ø²É¼¯½á¹û");
- return µ±Ç°Îı¾;
- }
- }
- }
- // ³¬Ê±¶µµ×£º¾¡Á¿·µ»Øµ±Ç°Äܲɼ¯µ½µÄ×îºóÒ»Ìõ»Ø´ð
- print.log("⚠ µÈ´ýAI»Ø´ð³¬Ê±£¨" + µÈ´ý»Ø´ð³¬Ê±Ãë + "Ã룩£¬³¢ÊÔ·µ»Øµ±Ç°ÄÚÈÝ");
- var xml = »ñÈ¡UI();
- var ¶µµ×Áбí = ²É¼¯AI»Ø´ðÁбí(xml, true);
- if (¶µµ×Áбí.length > 0) {
- var ¶µµ×Îı¾ = ¶µµ×Áбí[¶µµ×Áбí.length - 1];
- if (¶µµ×Îı¾ !== ·¢ËÍǰµÄ×îºóÎı¾) {
- print.log("✓ ³¬Ê±¶µµ×£º·µ»Øµ±Ç°²É¼¯µ½µÄ»Ø´ð");
- return ¶µµ×Îı¾;
- }
- }
- var ¶µµ×¿íËÉ = ²É¼¯AI»Ø´ðÁбí(xml, false);
- if (¶µµ×¿íËÉ.length > 0) {
- var ¶µµ×Îı¾2 = ¶µµ×¿íËÉ[¶µµ×¿íËÉ.length - 1];
- if (¶µµ×Îı¾2 !== ·¢ËÍǰµÄ×îºóÎı¾ && ×Ö·û´®³¤¶È(¶µµ×Îı¾2) > 5) {
- print.log("✓ ³¬Ê±¶µµ×£¨¿íËÉ£©£º·µ»Øµ±Ç°²É¼¯µ½µÄ»Ø´ð");
- return ¶µµ×Îı¾2;
- }
- }
- return null;
- }
- // »ñÈ¡µ±Ç°Ò³Ãæ×îºóÒ»ÌõAI»Ø´ðÎı¾£¨ÓÃÓÚ·¢ËÍǰ¼Ç¼»ùÏߣ©
- function »ñÈ¡µ±Ç°×îºóAI»Ø´ð(xml) {
- var »Ø´ðÁбí = ²É¼¯AI»Ø´ðÁбí(xml);
- if (»Ø´ðÁбí.length === 0) return "";
- return »Ø´ðÁбí[»Ø´ðÁбí.length - 1];
- }
- // ¸ñʽ»¯¶Ô»°ÄÚÈÝÊä³ö£¨TXT¸ñʽ£©
- function ¸ñʽ»¯¶Ô»°(¶Ô»°Áбí) {
- var result = "========== ǧÎʶԻ°¼Ç¼ ==========\n";
- result += "²É¼¯Ê±¼ä£º" + new Date().toString() + "\n";
- result += "¶Ô»°ÂÖÊý£º" + ¶Ô»°Áбí.length + "\n";
- result += "==================================\n\n";
-
- for (var i = 0; i < ¶Ô»°Áбí.length; i++) {
- result += "¡¾" + ¶Ô»°Áбí[i].½ÇÉ« + "¡¿\n";
- result += ¶Ô»°Áбí[i].ÄÚÈÝ + "\n";
- result += "----------------------------------\n";
- if (i < ¶Ô»°Áбí.length - 1) {
- result += "\n";
- }
- }
-
- return result;
- }
- // дÈëÎļþ£¨TXT¸ñʽ£¬GBK±àÂ룩
- function дÈëÎļþ(Îļþ·¾¶, ÄÚÈÝ) {
- var javaStr = new java.lang.String(ÄÚÈÝ);
-
- try {
- var fos = new java.io.FileOutputStream(Îļþ·¾¶);
- fos.write(javaStr.getBytes("GBK"));
- fos.close();
-
- print.log("✓ ÒÑдÈëÎļþ£¨TXT¸ñʽ£¬GBK±àÂ룩£º" + Îļþ·¾¶);
-
- var catResult = agent.shell("cat " + Îļþ·¾¶ + " | head -2");
- print.log("✓ catÑéÖ¤½á¹û£º" + catResult);
-
- return true;
- } catch (e) {
- print.log("⚠ FileOutputStreamдÈëÒì³££º" + e.message);
- }
- try {
- var base64Content = java.util.Base64.getEncoder().encodeToString(javaStr.getBytes("GBK"));
- agent.shell("echo '" + base64Content + "' | base64 -d > " + Îļþ·¾¶);
-
- print.log("✓ ÒÑͨ¹ýbase64дÈëÎļþ£¨GBK£©£º" + Îļþ·¾¶);
-
- var catResult = agent.shell("cat " + Îļþ·¾¶ + " | head -2");
- print.log("✓ catÑéÖ¤½á¹û£º" + catResult);
-
- return true;
- } catch (e2) {
- print.log("⚠ base64дÈëÒì³££º" + e2.message);
- }
- try {
- var fos2 = new java.io.FileOutputStream(Îļþ·¾¶);
- fos2.write(javaStr.getBytes("UTF-8"));
- fos2.close();
-
- print.log("✓ ÒÑͨ¹ýFileOutputStreamдÈëÎļþ£¨UTF-8£©£º" + Îļþ·¾¶);
-
- return true;
- } catch (e3) {
- print.log("⚠ UTF-8дÈëÒì³££º" + e3.message);
- }
- print.log("✗ дÈëÎļþʧ°Ü£º" + Îļþ·¾¶);
- return false;
- }
- // ========== Ö÷Á÷³Ì¿ªÊ¼ ==========
- // ²½Öè1£ºÆô¶¯Ç§ÎÊAPP
- print.log("\n========== ²½Öè1£ºÆô¶¯Ç§ÎÊAPP ==========");
- try {
- app.openApp(ǧÎʰüÃû);
- print.log("✓ ÒÑÆô¶¯Ç§ÎÊ");
- } catch (e) {
- print.log("⚠ Æô¶¯Ê§°Ü£º" + e.message);
- }
- sleep.second(Ãë = 5);
- // ²½Öè2£ºÈ·ÈϽøÈë¶Ô»°Ò³Ãæ
- print.log("\n========== ²½Öè2£ºÈ·ÈϽøÈë¶Ô»°Ò³Ãæ ==========");
- var xml = »ñÈ¡UI();
- var hasRecyclerView = (xml.indexOf("androidx.recyclerview.widget.RecyclerView") !== -1);
- if (!hasRecyclerView) {
- print.log("⚠ µ±Ç°Ò³Ãæ¿ÉÄܲ»ÊÇǧÎʶԻ°Ò³£¬Ôٴεȴý");
- sleep.second(Ãë = 3);
- xml = »ñÈ¡UI();
- hasRecyclerView = (xml.indexOf("androidx.recyclerview.widget.RecyclerView") !== -1);
- }
- if (hasRecyclerView) {
- print.log("✓ ÒѽøÈëǧÎʶԻ°Ò³Ãæ");
- } else {
- print.log("⚠ δ¼ì²âµ½ÏûÏ¢ÁÐ±í£¬¼ÌÐø³¢ÊÔ");
- }
- // ²½Öè3£ºÑ»··¢ËÍÎÊÌâ²¢²É¼¯»Ø´ð
- print.log("\n========== ²½Öè3£ºÑ»··¢ËÍÎÊÌâ²¢²É¼¯»Ø´ð ==========");
- // ÍêÕû¶Ô»°ÁÐ±í£¨°üº¬Óû§ÎÊÌâºÍAI»Ø´ð£©
- var ÍêÕû¶Ô»° = [];
- // »ñÈ¡·¢Ë͵ÚÒ»¸öÎÊÌâǰµÄ×îºóAI»Ø´ðÎı¾£¨×÷Ϊ»ùÏߣ¬ÓÃÓÚ¼ì²âлشð£©
- var ³õʼ×îºóÎı¾ = »ñÈ¡µ±Ç°×îºóAI»Ø´ð(xml);
- print.log("✓ ³õÊ¼Ò³Ãæ×îºóÒ»ÌõAI»Ø´ð³¤¶È£º" + ×Ö·û´®³¤¶È(³õʼ×îºóÎı¾));
- // ¿ªÊ¼·¢ËÍÎÊÌâ
- for (var q = 0; q < Òª·¢Ë͵ÄÎÊÌâÁбí.length; q++) {
- var µ±Ç°ÎÊÌâ = Òª·¢Ë͵ÄÎÊÌâÁбí[q];
- print.log("\n---- µÚ " + (q + 1) + " / " + Òª·¢Ë͵ÄÎÊÌâÁбí.length + " ¸öÎÊÌâ ----");
- print.log("ÎÊÌ⣺" + µ±Ç°ÎÊÌâ);
- // 3.1 ÖØÐ»ñÈ¡UI£¬¶¨Î»ÊäÈë¿ò
- xml = »ñÈ¡UI();
- var ÊäÈë¿ò = ²éÕÒÊäÈë¿òÖÐÐÄ(xml);
- if (!ÊäÈë¿ò) {
- print.log("⚠ δÕÒµ½ÊäÈë¿ò£¬Ìø¹ý´ËÎÊÌâ");
- sleep.second(Ãë = ÎÊÌâ¼ä¸ôÃë);
- continue;
- }
- // 3.2 ¼Ç¼·¢ËÍǰµÄ×îºóÒ»ÌõAI»Ø´ðÎı¾£¨×÷Ϊ¼ì²âлشðµÄ»ùÏߣ©
- var ·¢ËÍǰ×îºóÎı¾ = »ñÈ¡µ±Ç°×îºóAI»Ø´ð(xml);
- // 3.3 µã»÷ÊäÈë¿ò»ñÈ¡½¹µã
- agent.click(ÊäÈë¿ò.x, ÊäÈë¿ò.y);
- sleep.second(Ãë = 1);
- // 3.4 Õ³ÌùÎÊÌâÎı¾
- Õ³ÌùÎı¾(µ±Ç°ÎÊÌâ);
- // 3.5 ÖØÐ»ñÈ¡UI£¬²éÕÒ·¢ËͰ´Å¥
- xml = »ñÈ¡UI();
- var ·¢ËͰ´Å¥ = ²éÕÒ·¢ËͰ´Å¥ÖÐÐÄ(xml);
- if (·¢ËͰ´Å¥) {
- agent.click(·¢ËͰ´Å¥.x, ·¢ËͰ´Å¥.y);
- print.log("✓ Òѵã»÷·¢ËͰ´Å¥");
- } else {
- // ¶µµ×£º°´»Ø³µ¼ü·¢ËÍ
- agent.shell("input keyevent 66");
- print.log("⚠ δÕÒµ½·¢ËͰ´Å¥£¬Òѳ¢ÊÔ°´»Ø³µ·¢ËÍ");
- }
- // 3.6 ¼Ç¼Óû§ÎÊÌâ
- ÍêÕû¶Ô»°.push({
- ½ÇÉ«: "Óû§",
- ÄÚÈÝ: µ±Ç°ÎÊÌâ
- });
- // 3.7 µÈ´ýAI»Ø´ðÍê³É£¨»ùÓÚ"×îºóÒ»Ìõ»Ø´ðÎı¾±ä»¯"Åжϣ¬²»ÒÀÀµÊýÁ¿µÝÔö£©
- print.log("µÈ´ýAI»Ø´ð£¬·¢ËÍǰ×îºóÎı¾³¤¶È£º" + ×Ö·û´®³¤¶È(·¢ËÍǰ×îºóÎı¾));
- var лشðÎı¾ = µÈ´ýAI»Ø´ðÍê³É(·¢ËÍǰ×îºóÎı¾);
- if (лشðÎı¾ && ×Ö·û´®³¤¶È(лشðÎı¾) > 0) {
- ÍêÕû¶Ô»°.push({
- ½ÇÉ«: "AI",
- ÄÚÈÝ: лشðÎı¾
- });
- print.log("✓ ²É¼¯µ½Ð»ش𣬵±Ç°×ܶԻ°ÌõÊý£º" + ÍêÕû¶Ô»°.length);
- print.log("--- ²É¼¯ÄÚÈÝ¿ªÊ¼ ---");
- print.log(лشðÎı¾);
- print.log("--- ²É¼¯ÄÚÈݽáÊø ---");
- } else {
- print.log("⚠ δÄܲɼ¯µ½Ð»شð");
- }
- sleep.second(Ãë = ÎÊÌâ¼ä¸ôÃë);
- }
- // ²½Öè4£º±£´æ¶Ô»°µ½Îļþ
- print.log("\n========== ²½Öè4£º±£´æ¶Ô»°µ½Îļþ ==========");
- var Êä³öÄÚÈÝ = ¸ñʽ»¯¶Ô»°(ÍêÕû¶Ô»°);
- var дÈë³É¹¦ = дÈëÎļþ(Êä³öÎļþ·¾¶, Êä³öÄÚÈÝ);
- if (дÈë³É¹¦) {
- print.log("✓ ¶Ô»°Òѱ£´æµ½£º" + Êä³öÎļþ·¾¶);
- print.log("✓ ×ܶԻ°ÌõÊý£º" + ÍêÕû¶Ô»°.length);
- } else {
- print.log("✗ ±£´æÊ§°Ü£¬Çë¼ì²é´æ´¢È¨ÏÞ");
- }
- // ²½Öè5£º´òÓ¡È«²¿²É¼¯µ½µÄ¶Ô»°ÄÚÈÝ
- print.log("\n========== È«²¿²É¼¯ÄÚÈÝ ==========");
- print.log(Êä³öÄÚÈÝ);
- print.log("========== ÄÚÈݽáÊø ==========");
- print.log("\n===== ǧÎʶԻ°²É¼¯Á÷³Ì½áÊø =====");
¸´ÖÆ´úÂë
|
|