B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 1|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

¶¹°ü¶Ô»°²É¼¯Ê¾Àý

[¸´ÖÆÁ´½Ó]

1131

Ö÷Ìâ

1136

Ìû×Ó

7801

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7801
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷

¶¹°ü¶Ô»°²É¼¯Ê¾Àý


¶¹°ü¶Ô»°²É¼¯Ê¾Àý B2BÍøÂçÈí¼þ


  1. // AIWROK ×Ô¶¯»¯Á÷³Ì£ºÆô¶¯¶¹°ü ¡ú ÊäÈëÎÊÌâ ¡ú µã»÷·¢ËÍ ¡ú µÈ´ýAI»Ø´ð ¡ú ²É¼¯»Ø´ðÄÚÈÝ ¡ú ±£´æµ½Îļþ
  2. // È«³ÌʹÓà agent.getXml() »ñÈ¡½çÃæÔ´Âë
  3. // °üÃû£ºcom.larus.nova£¨¶¹°ü£©
  4. //
  5. // ʹÓÃ˵Ã÷£º
  6. //   1. ÐÞ¸ÄÏ·½¡¾ÅäÖÃÇø¡¿ÖеÄ"Òª·¢Ë͵ÄÎÊÌâÁбí"
  7. //   2. ²É¼¯½á¹û±£´æµ½ /sdcard/¶¹°ü¶Ô»°¼Ç¼.txt

  8. print.log("===== ¶¹°ü¶Ô»°²É¼¯Á÷³ÌÆô¶¯ =====");
  9. print.time();

  10. // ========== ÅäÖÃÇø ==========
  11. var ¶¹°ü°üÃû = "com.larus.nova";

  12. // Êä³öÎļþ·¾¶
  13. var Êä³öÎļþ·¾¶ = "/sdcard/¶¹°ü¶Ô»°¼Ç¼.txt";

  14. // Òª·¢Ë͵ÄÎÊÌâÁÐ±í£¨°´Ë³Ðò·¢ËÍ£©
  15. var Òª·¢Ë͵ÄÎÊÌâÁбí = [
  16.     "ÄãºÃ£¬ÇëÓÃÒ»¾ä»°½éÉÜÄã×Ô¼º",
  17.     "Öйúƽ°²¹ÉƱ×î½ü×ßÊÆÈçºÎ£¿",
  18.     "ÕÐÉÌÒøÐгÖÓÐ3ÄêÂô³öÐèÒª½»¹ÉϢ˰Âð£¿"
  19. ];

  20. // ·¢ËͺóµÈ´ýAI»Ø´ðµÄ×î´óÃëÊý£¨ÕûÌ峬ʱ£¬×10Ã룩
  21. var µÈ´ý»Ø´ð³¬Ê±Ãë = 10;

  22. // ¼ì²âµ½Ð»شð³öÏÖºó£¬Ôٵȴý¶àÉÙÃëÈûشð¾¡Á¿Êä³öÍêÕû£¨È»ºóÖ±½Ó·µ»Ø£©
  23. var »Ø´ðÊä³öµÈ´ýÃë = 8;

  24. // ÿ¸öÎÊÌâÖ®¼äµÄ¼ä¸ôÃëÊý
  25. var ÎÊÌâ¼ä¸ôÃë = 2;

  26. // ========== »ñÈ¡É豸ÐÅÏ¢ ==========
  27. var ÆÁÄ»¿í = screen.getScreenWidth();
  28. var ÆÁÄ»¸ß = screen.getScreenHeight();
  29. print.log("ÆÁÄ»³ß´ç£º" + ÆÁÄ»¿í + " x " + ÆÁÄ»¸ß);
  30. print.log("´úÀí״̬£º" + (agent.isOpen() ? "ÒÑ¿ªÆô" : "먦Æô"));

  31. // ========== ¹¤¾ßº¯Êý ==========

  32. // »ñÈ¡ UI XML ×Ö·û´®£¨Ê¹Óà agent.getXml()£¬Ç¿ÖÆ×ªÎª×Ö·û´®£©
  33. function »ñÈ¡UI() {
  34.     var xml = agent.getXml();
  35.     // agent.getXml() ·µ»Ø¶ÔÏó£¬ÐèÇ¿ÖÆ×ªÎª×Ö·û´®
  36.     return "" + xml;
  37. }

  38. // ×Ö·û´®³¤¶È¼æÈݺ¯Êý£¨±ÜÃâ Java String ¶ÔÏó .length() ·½·¨ÎÊÌ⣩
  39. function ×Ö·û´®³¤¶È(s) {
  40.     var str = "" + s;
  41.     return str.length;
  42. }

  43. // HTMLʵÌå½âÂ루¶¹°üTextViewÖеĻ»ÐзûµÈ»á±»±àÂëΪ
  44. ' µÈ£©
  45. function ½âÂëHTMLʵÌå(s) {
  46.     var str = "" + s;
  47.     str = str.replace(/
  48. /g, "\n");
  49.     str = str.replace(/
  50. /g, "\r");
  51.     str = str.replace(/        /g, "\t");
  52.     str = str.replace(/'/g, "'");
  53.     str = str.replace(/"/g, '"');
  54.     str = str.replace(/"/g, '"');
  55.     str = str.replace(/'/g, "'");
  56.     str = str.replace(/&/g, "&");
  57.     str = str.replace(/</g, "<");
  58.     str = str.replace(/>/g, ">");
  59.     return str;
  60. }

  61. // ²É¼¯¶¹°ü message_list ÖÐËùÓÐ content_view Ï嵀 TextView Îı¾£¨¼´AI»Ø´ð£©
  62. // ²ÎÊý Ñϸñ¹ýÂË: true=Åųý¶ÌÎı¾°´Å¥µÈ, false=²»¹ýÂË£¨ÓÃÓÚ¼ì²âлشð³öÏÖ£¬¸üÁéÃô£©
  63. function ²É¼¯AI»Ø´ðÁбí(xml, Ñϸñ¹ýÂË) {
  64.     if (Ñϸñ¹ýÂË === undefined) Ñϸñ¹ýÂË = true;
  65.     var xmlStr = "" + xml;
  66.     var »Ø´ðÁбí = [];

  67.     // ¶¨Î» message_list ½Úµã
  68.     var listIdx = xmlStr.indexOf('id/message_list"');
  69.     if (listIdx === -1) {
  70.         print.log("⚠ δÕÒµ½ÏûÏ¢Áбí½Úµã£¬¿ÉÄܲ»ÔÚ¶¹°ü¶Ô»°Ò³Ãæ");
  71.         return »Ø´ðÁбí;
  72.     }

  73.     // ½ØÈ¡ message_list Ö®ºóµÄ²¿·Ö
  74.     var ºóÃæ = xmlStr.substring(listIdx);

  75.     // ±éÀúËùÓÐ content_view ½Úµã
  76.     var λÖà = 0;
  77.     while (true) {
  78.         var cvIdx = ºóÃæ.indexOf('id/content_view"', λÖÃ);
  79.         if (cvIdx === -1) break;

  80.         // ´Ó content_view ÆðʼλÖýØÈ¡Ò»¶Î£¬ÕÒËüÄÚ²¿µÚÒ»¸öÓÐ·Ç¿Õ text µÄ TextView
  81.         var ¶Î = ºóÃæ.substring(cvIdx);
  82.         // ÕÒµ½ content_view ½Úµã¿ªÊ¼±êÇ©µÄ½áÊøÎ»Öà ">"
  83.         var ±êÇ©½áÊø = ¶Î.indexOf(">");
  84.         if (±êÇ©½áÊø === -1) break;
  85.         var ×Ó¶Î = ¶Î.substring(±êÇ©½áÊø + 1);

  86.         // ÔÚ×Ó¶ÎÖвéÕÒµÚÒ»¸öÓÐ·Ç¿Õ text µÄ TextView ½Úµã
  87.         var Îı¾Æ¥Åä = ×Ó¶Î.match(/<node[^>]*?text="([^"]+)"[^>]*?class="android\.widget\.TextView"[^>]*?\/?>/);
  88.         if (!Îı¾Æ¥Åä) {
  89.             // ±¸Ñ¡Ë³Ðò£ºÏÈ class ÔÙ text
  90.             Îı¾Æ¥Åä = ×Ó¶Î.match(/<node[^>]*?class="android\.widget\.TextView"[^>]*?text="([^"]+)"[^>]*?\/?>/);
  91.         }

  92.         if (Îı¾Æ¥Åä && Îı¾Æ¥Åä[1]) {
  93.             var ԭʼÎı¾ = Îı¾Æ¥Åä[1];
  94.             var ½âÂëÎı¾ = ½âÂëHTMLʵÌå(ԭʼÎı¾);
  95.             if (Ñϸñ¹ýÂË) {
  96.                 // Ñϸñģʽ£ºÅųý°´Å¥Îݸ£¨¸´ÖÆ¡¢·ÖÏíµÈ£©£¬AI»Ø´ðÌØÕ÷£ºº¬»»ÐÐ »ò ³¤¶È>30
  97.                 if (½âÂëÎı¾.indexOf("\n") !== -1 || ×Ö·û´®³¤¶È(½âÂëÎı¾) > 30) {
  98.                     »Ø´ðÁбí.push(½âÂëÎı¾);
  99.                 }
  100.             } else {
  101.                 // ¿íËÉģʽ£ºÖ»ÒªÓзǿÕÎı¾¾ÍË㣬ÓÃÓÚÁéÃô¼ì²âлشð³öÏÖ
  102.                 if (×Ö·û´®³¤¶È(½âÂëÎı¾) > 0) {
  103.                     »Ø´ðÁбí.push(½âÂëÎı¾);
  104.                 }
  105.             }
  106.         }

  107.         Î»Öà = cvIdx + 30;
  108.     }

  109.     return »Ø´ðÁбí;
  110. }

  111. // ²éÕÒÊäÈë¿òÖÐÐÄ×ø±ê£¨resource-id º¬ input_text µÄ EditText£©
  112. function ²éÕÒÊäÈë¿òÖÐÐÄ(xml) {
  113.     var xmlStr = "" + xml;
  114.     var idx = xmlStr.indexOf('id/input_text"');
  115.     if (idx === -1) return null;

  116.     var ¶Î = xmlStr.substring(idx);
  117.     var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  118.     if (!m) return null;

  119.     var x1 = parseInt(m[1]);
  120.     var y1 = parseInt(m[2]);
  121.     var x2 = parseInt(m[3]);
  122.     var y2 = parseInt(m[4]);
  123.     return {
  124.         x: (x1 + x2) / 2,
  125.         y: (y1 + y2) / 2
  126.     };
  127. }

  128. // ²éÕÒ·¢ËͰ´Å¥×ø±ê
  129. // ¶¹°üÊäÈë¿òÓÒ²àµÄ action_speak ½Úµã£¬ÊäÈëÎÄ×Öºó»á±ä³É·¢ËͰ´Å¥
  130. // Ò²²éÕÒÎÄ×Ö"·¢ËÍ"»ò resource-id º¬ action_send µÄ½Úµã
  131. function ²éÕÒ·¢ËͰ´Å¥ÖÐÐÄ(xml) {
  132.     var xmlStr = "" + xml;

  133.     // 1. ÓÅÏȲéÕÒÎÄ×Ö"·¢ËÍ"
  134.     var sendTextIdx = xmlStr.indexOf('text="·¢ËÍ"');
  135.     if (sendTextIdx !== -1) {
  136.         var ¶Î = xmlStr.substring(sendTextIdx);
  137.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  138.         if (m) {
  139.             return {
  140.                 x: (parseInt(m[1]) + parseInt(m[3])) / 2,
  141.                 y: (parseInt(m[2]) + parseInt(m[4])) / 2
  142.             };
  143.         }
  144.     }

  145.     // 2. ²éÕÒ resource-id º¬ action_send
  146.     var sendIdIdx = xmlStr.indexOf('id/action_send"');
  147.     if (sendIdIdx !== -1) {
  148.         var ¶Î2 = xmlStr.substring(sendIdIdx);
  149.         var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  150.         if (m2) {
  151.             return {
  152.                 x: (parseInt(m2[1]) + parseInt(m2[3])) / 2,
  153.                 y: (parseInt(m2[2]) + parseInt(m2[4])) / 2
  154.             };
  155.         }
  156.     }

  157.     // 3. ¶µµ×£ºÊ¹Óà action_speak ½Úµã×ø±ê£¨ÊäÈëÎÄ×Öºó¸Ã°´Å¥±äΪ·¢Ë͹¦ÄÜ£©
  158.     var speakIdx = xmlStr.indexOf('id/action_speak"');
  159.     if (speakIdx !== -1) {
  160.         var ¶Î3 = xmlStr.substring(speakIdx);
  161.         var m3 = ¶Î3.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  162.         if (m3) {
  163.             return {
  164.                 x: (parseInt(m3[1]) + parseInt(m3[3])) / 2,
  165.                 y: (parseInt(m3[2]) + parseInt(m3[4])) / 2
  166.             };
  167.         }
  168.     }

  169.     return null;
  170. }

  171. // Õ³ÌùÎı¾µ½µ±Ç°½¹µãÊäÈë¿ò£¨¼ôÌù°å·¨£¬¼æÈÝÖÐÎÄ£©
  172. function Õ³ÌùÎı¾(Îı¾) {
  173.     try {
  174.         Clipboard.copy("" + Îı¾);
  175.     } catch (e) {
  176.         print.log("⚠ Clipboard.copy ʧ°Ü£º" + e.message);
  177.     }
  178.     sleep.millisecond(ºÁÃë = 300);

  179.     // Ë«±£ÏÕ£ºÍ¨¹ý shell д¼ôÌù°å
  180.     try {
  181.         agent.shell("service call clipboard 3 i32 1 s16 '" + Îı¾ + "' i32 0");
  182.     } catch (e2) {
  183.         // ºöÂÔ´íÎó
  184.     }
  185.     sleep.millisecond(ºÁÃë = 300);

  186.     // ´¥·¢Õ³Ìù£ºKEYCODE_PASTE = 279
  187.     agent.shell("input keyevent 279");
  188.     sleep.second(Ãë = 1);
  189.     print.log("✓ ÒÑÕ³ÌùÎı¾£º" + Îı¾);
  190. }

  191. // ²éÕÒ²¢µã»÷AI»Ø´ðµ×²¿µÄÕ¹¿ª°´Å¥£¨ÏòϼýÍ·£©
  192. // ¶¹°ü³¤»Ø´ð»áÕÛµþÏÔʾ£¬ÐèÒªµã»÷Õ¹¿ª¼ýÍ·²ÅÄÜ¿´µ½ÍêÕûÄÚÈÝ
  193. // ´ÓXMLÖж¯Ì¬¶¨Î»£¬²»ÒÀÀµÓ²±àÂë×ø±ê
  194. function ²éÕÒ²¢µã»÷Õ¹¿ª°´Å¥(xml) {
  195.     var xmlStr = "" + xml;
  196.    
  197.     // 1. ²éÕÒ content-desc º¬"Õ¹¿ª"»ò"¸ü¶à"µÄ°´Å¥
  198.     var expandIdx = xmlStr.indexOf('content-desc="Õ¹¿ª"');
  199.     if (expandIdx === -1) {
  200.         expandIdx = xmlStr.indexOf('content-desc="¸ü¶à"');
  201.     }
  202.     if (expandIdx === -1) {
  203.         expandIdx = xmlStr.indexOf('content-desc="ÊÕÆð"');
  204.     }
  205.    
  206.     if (expandIdx !== -1) {
  207.         var ¶Î = xmlStr.substring(expandIdx);
  208.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  209.         if (m) {
  210.             var x = (parseInt(m[1]) + parseInt(m[3])) / 2;
  211.             var y = (parseInt(m[2]) + parseInt(m[4])) / 2;
  212.             agent.click(x, y);
  213.             print.log("✓ Òѵã»÷Õ¹¿ª°´Å¥£¨content-desc£©£¬×ø±ê(" + Math.round(x) + "," + Math.round(y) + ")");
  214.             sleep.second(Ãë = 1);
  215.             return true;
  216.         }
  217.     }

  218.     // 2. ²éÕÒÎı¾"Õ¹¿ª"»ò"¸ü¶à"µÄ°´Å¥
  219.     var textExpandIdx = xmlStr.indexOf('text="Õ¹¿ª"');
  220.     if (textExpandIdx === -1) {
  221.         textExpandIdx = xmlStr.indexOf('text="¸ü¶à"');
  222.     }
  223.     if (textExpandIdx !== -1) {
  224.         var ¶Î2 = xmlStr.substring(textExpandIdx);
  225.         var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  226.         if (m2) {
  227.             var x2 = (parseInt(m2[1]) + parseInt(m2[3])) / 2;
  228.             var y2 = (parseInt(m2[2]) + parseInt(m2[4])) / 2;
  229.             agent.click(x2, y2);
  230.             print.log("✓ Òѵã»÷Õ¹¿ª°´Å¥£¨Îı¾Æ¥Å䣩£¬×ø±ê(" + Math.round(x2) + "," + Math.round(y2) + ")");
  231.             sleep.second(Ãë = 1);
  232.             return true;
  233.         }
  234.     }

  235.     // 3. ¶µµ×£º´ÓXML½âÎö×îºóÒ»¸ö content_view µÄµ×²¿ÖÐÐÄλÖã¨Õ¹¿ª¼ýͷͨ³£Ôڻشðµ×²¿Öм䣩
  236.     var lastCVIdx = xmlStr.lastIndexOf('id/content_view"');
  237.     if (lastCVIdx !== -1) {
  238.         var cv¶Î = xmlStr.substring(lastCVIdx);
  239.         var cvM = cv¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  240.         if (cvM) {
  241.             var cvX1 = parseInt(cvM[1]);
  242.             var cvY1 = parseInt(cvM[2]);
  243.             var cvX2 = parseInt(cvM[3]);
  244.             var cvY2 = parseInt(cvM[4]);
  245.             // µã»÷ content_view µ×²¿ÖмäλÖã¨Õ¹¿ª¼ýͷͨ³£ÔÚÕâÀ
  246.             var centerX = (cvX1 + cvX2) / 2;
  247.             var bottomY = cvY2 - 50; // ÉÔ΢ÍùÉÏÒ»µã£¬±Ü¿ª±ßÔµ
  248.             agent.click(centerX, bottomY);
  249.             print.log("✓ Òѵã»÷content_viewµ×²¿£¨¶µµ×Õ¹¿ª£©£¬×ø±ê(" + Math.round(centerX) + "," + Math.round(bottomY) + ")");
  250.             sleep.second(Ãë = 1);
  251.             return true;
  252.         }
  253.     }

  254.     // 4. ×îÖÕ¶µµ×£ºÊ¹ÓÃÆÁÄ»°Ù·Ö±È×ø±ê£¨½ö×÷Ϊ×îºó±¸Ñ¡£©
  255.     var pctX = ÆÁÄ»¿í / 2;
  256.     var pctY = ÆÁÄ»¸ß * 0.85;
  257.     agent.click(pctX, pctY);
  258.     print.log("✓ Òѵã»÷ÆÁÄ»µ×²¿£¨×îÖÕ¶µµ×£©£¬×ø±ê(" + Math.round(pctX) + "," + Math.round(pctY) + ")");
  259.     sleep.second(Ãë = 1);
  260.     return true;
  261. }

  262. // ´ÓXML½âÎö message_list µÄ±ß½ç£¬È»ºóÔÚÆäÖ묶¯µ½µ×²¿
  263. // ²»ÒÀÀµÓ²±àÂë×ø±ê£¬»»ÊÖ»úÒ²ÄÜÔËÐÐ
  264. function »¬¶¯ÏûÏ¢ÁÐ±íµ½µ×²¿(xml) {
  265.     var xmlStr = "" + xml;
  266.     var listIdx = xmlStr.indexOf('id/message_list"');
  267.     if (listIdx === -1) {
  268.         print.log("⚠ δÕÒµ½message_list£¬Ê¹ÓÃÆÁÄ»°Ù·Ö±È»¬¶¯");
  269.         agent.swip(ÆÁÄ»¿í / 2, ÆÁÄ»¸ß * 0.3, ÆÁÄ»¿í / 2, ÆÁÄ»¸ß * 0.8, 500);
  270.         return;
  271.     }

  272.     var ¶Î = xmlStr.substring(listIdx);
  273.     var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  274.     if (!m) {
  275.         print.log("⚠ δÕÒµ½message_list±ß½ç£¬Ê¹ÓÃÆÁÄ»°Ù·Ö±È»¬¶¯");
  276.         agent.swip(ÆÁÄ»¿í / 2, ÆÁÄ»¸ß * 0.3, ÆÁÄ»¿í / 2, ÆÁÄ»¸ß * 0.8, 500);
  277.         return;
  278.     }

  279.     var x1 = parseInt(m[1]);
  280.     var y1 = parseInt(m[2]);
  281.     var x2 = parseInt(m[3]);
  282.     var y2 = parseInt(m[4]);

  283.     // ÔÚ message_list ÇøÓòÄÚ»¬¶¯£º´ÓÉϰ벿·Ö»¬µ½Ï°벿·Ö
  284.     var startX = (x1 + x2) / 2;
  285.     var startY = y1 + (y2 - y1) * 0.2; // ÇøÓòÉÏ·½20%λÖÃ
  286.     var endX = startX;
  287.     var endY = y1 + (y2 - y1) * 0.8;   // ÇøÓòÏ·½20%λÖÃ

  288.     agent.swip(startX, startY, endX, endY, 500);
  289.     print.log("✓ ÒÑÔÚmessage_listÄÚ»¬¶¯£¬ÇøÓò[" + x1 + "," + y1 + "][" + x2 + "," + y2 + "]");
  290. }
  291. // µÈ´ýAI»Ø´ðÍê³É
  292. // Âß¼­£º
  293. //   ½×¶Î1£º¿íËɼì²â - µÈ´ý×îºóÒ»Ìõ»Ø´ðÎı¾±ä»¯£¨Ð»شð³öÏÖ£©
  294. //   ½×¶Î2£º¼ì²âµ½Ð»شðºó£¬Ïȵã»÷Õ¹¿ª°´Å¥£¬Ôٵȴý»Ø´ðÊä³öµÈ´ýÃ룬ȻºóÖ±½Ó·µ»Ø
  295. //   ³¬Ê±¶µµ×£ºÈôÕûÌ峬ʱµ«Äܲɵ½·Ç¿ÕÎı¾£¬Ò²·µ»Øµ±Ç°ÄÚÈÝ
  296. // ²ÎÊý£º·¢ËÍǰµÄ×îºóÒ»ÌõAI»Ø´ðÎı¾£¨ÓÃÓڶԱȼì²âлشð£©
  297. // ·µ»Ø£ºÐ»شðµÄÎı¾ÄÚÈÝ
  298. function µÈ´ýAI»Ø´ðÍê³É(·¢ËÍǰµÄ×îºóÎı¾) {
  299.     var ÒѺÄʱ = 0;
  300.     var ¼ì²é¼ä¸ôÃë = 2;
  301.     var ÒѼì²âµ½Ð»شð = false;
  302.     var ¼ì²âµ½µÄʱ¼äµã = 0;
  303.     var Òѵã»÷Õ¹¿ª°´Å¥ = false;

  304.     while (ÒѺÄʱ < µÈ´ý»Ø´ð³¬Ê±Ãë) {
  305.         sleep.second(Ãë = ¼ì²é¼ä¸ôÃë);
  306.         ÒѺÄʱ += ¼ì²é¼ä¸ôÃë;

  307.         var xml = »ñÈ¡UI();

  308.         if (!ÒѼì²âµ½Ð»شð) {
  309.             // ½×¶Î1£º¿íËÉģʽ¼ì²âлشðÊÇ·ñ³öÏÖ
  310.             var ¿íËÉÁбí = ²É¼¯AI»Ø´ðÁбí(xml, false);
  311.             if (¿íËÉÁбí.length === 0) {
  312.                 continue;
  313.             }
  314.             var µ±Ç°×îºóÎı¾ = ¿íËÉÁбí[¿íËÉÁбí.length - 1];
  315.             if (µ±Ç°×îºóÎı¾ !== ·¢ËÍǰµÄ×îºóÎı¾ && ×Ö·û´®³¤¶È(µ±Ç°×îºóÎı¾) > 0) {
  316.                 print.log("✓ ¼ì²âµ½Ð»شð³öÏÖ£¨" + ÒѺÄʱ + "Ã룩£¬µÈ´ý" + »Ø´ðÊä³öµÈ´ýÃë + "Ãëºó²É¼¯");
  317.                 ÒѼì²âµ½Ð»شð = true;
  318.                 ¼ì²âµ½µÄʱ¼äµã = ÒѺÄʱ;
  319.             }
  320.         } else {
  321.             // ½×¶Î2£ºÒѼì²âµ½Ð»شð
  322.             var Òѵȴý = ÒѺÄʱ - ¼ì²âµ½µÄʱ¼äµã;
  323.             
  324.             // Ïȵã»÷Õ¹¿ª°´Å¥£¨Ö»µã»÷Ò»´Î£©
  325.             if (!Òѵã»÷Õ¹¿ª°´Å¥ && Òѵȴý >= 2) {
  326.                 ²éÕÒ²¢µã»÷Õ¹¿ª°´Å¥(xml);
  327.                 Òѵã»÷Õ¹¿ª°´Å¥ = true;
  328.             }
  329.             
  330.             // ÔٵȻشðÊä³öµÈ´ýÃëºóÖ±½Ó·µ»Ø
  331.             if (Òѵȴý >= »Ø´ðÊä³öµÈ´ýÃë) {
  332.                 var ÑϸñÁбí = ²É¼¯AI»Ø´ðÁбí(xml, true);
  333.                 if (ÑϸñÁбí.length > 0) {
  334.                     var ×îÖջشð = ÑϸñÁбí[ÑϸñÁбí.length - 1];
  335.                     if (×îÖջشð !== ·¢ËÍǰµÄ×îºóÎı¾ && ×Ö·û´®³¤¶È(×îÖջشð) > 0) {
  336.                         print.log("✓ Òѵȴý" + Òѵȴý + "Ã룬·µ»Ø²É¼¯½á¹û");
  337.                         return ×îÖջشð;
  338.                     }
  339.                 }
  340.                 // Ñϸñģʽû²Éµ½£¬ÓÿíËÉģʽ
  341.                 var ¿íËÉÁбí2 = ²É¼¯AI»Ø´ðÁбí(xml, false);
  342.                 if (¿íËÉÁбí2.length > 0) {
  343.                     var ×îÖջشð2 = ¿íËÉÁбí2[¿íËÉÁбí2.length - 1];
  344.                     if (×îÖջشð2 !== ·¢ËÍǰµÄ×îºóÎı¾ && ×Ö·û´®³¤¶È(×îÖջشð2) > 5) {
  345.                         print.log("✓ Òѵȴý" + Òѵȴý + "Ã루¿íËÉģʽ£©£¬·µ»Ø²É¼¯½á¹û");
  346.                         return ×îÖջشð2;
  347.                     }
  348.                 }
  349.             }
  350.         }
  351.     }

  352.     // ³¬Ê±¶µµ×£º¾¡Á¿·µ»Øµ±Ç°Äܲɼ¯µ½µÄ×îºóÒ»Ìõ»Ø´ð
  353.     print.log("⚠ µÈ´ýAI»Ø´ð³¬Ê±£¨" + µÈ´ý»Ø´ð³¬Ê±Ãë + "Ã룩£¬³¢ÊÔ·µ»Øµ±Ç°ÄÚÈÝ");
  354.     var xml = »ñÈ¡UI();
  355.     var ¶µµ×Áбí = ²É¼¯AI»Ø´ðÁбí(xml, true);
  356.     if (¶µµ×Áбí.length > 0) {
  357.         var ¶µµ×Îı¾ = ¶µµ×Áбí[¶µµ×Áбí.length - 1];
  358.         if (¶µµ×Îı¾ !== ·¢ËÍǰµÄ×îºóÎı¾) {
  359.             print.log("✓ ³¬Ê±¶µµ×£º·µ»Øµ±Ç°²É¼¯µ½µÄ»Ø´ð");
  360.             return ¶µµ×Îı¾;
  361.         }
  362.     }
  363.     var ¶µµ×¿íËÉ = ²É¼¯AI»Ø´ðÁбí(xml, false);
  364.     if (¶µµ×¿íËÉ.length > 0) {
  365.         var ¶µµ×Îı¾2 = ¶µµ×¿íËÉ[¶µµ×¿íËÉ.length - 1];
  366.         if (¶µµ×Îı¾2 !== ·¢ËÍǰµÄ×îºóÎı¾ && ×Ö·û´®³¤¶È(¶µµ×Îı¾2) > 5) {
  367.             print.log("✓ ³¬Ê±¶µµ×£¨¿íËÉ£©£º·µ»Øµ±Ç°²É¼¯µ½µÄ»Ø´ð");
  368.             return ¶µµ×Îı¾2;
  369.         }
  370.     }
  371.     return null;
  372. }

  373. // »ñÈ¡µ±Ç°Ò³Ãæ×îºóÒ»ÌõAI»Ø´ðÎı¾£¨ÓÃÓÚ·¢ËÍǰ¼Ç¼»ùÏߣ©
  374. function »ñÈ¡µ±Ç°×îºóAI»Ø´ð(xml) {
  375.     var »Ø´ðÁбí = ²É¼¯AI»Ø´ðÁбí(xml);
  376.     if (»Ø´ðÁбí.length === 0) return "";
  377.     return »Ø´ðÁбí[»Ø´ðÁбí.length - 1];
  378. }

  379. // ¸ñʽ»¯¶Ô»°ÄÚÈÝÊä³ö
  380. function ¸ñʽ»¯¶Ô»°(¶Ô»°Áбí) {
  381.     var Êä³ö = "";
  382.     Êä³ö += "========================================\n";
  383.     Êä³ö += "¶¹°ü¶Ô»°²É¼¯¼Ç¼\n";
  384.     Êä³ö += "²É¼¯Ê±¼ä£º" + new Date().toString() + "\n";
  385.     Êä³ö += "¶Ô»°ÂÖÊý£º" + ¶Ô»°Áбí.length + "\n";
  386.     Êä³ö += "========================================\n\n";

  387.     for (var i = 0; i < ¶Ô»°Áбí.length; i++) {
  388.         var ¶Ô»° = ¶Ô»°Áбí[i];
  389.         if (¶Ô»°.½ÇÉ« === "Óû§") {
  390.             Êä³ö += "¡¾Óû§ÌáÎÊ " + (i + 1) + "¡¿\n";
  391.         } else {
  392.             Êä³ö += "¡¾¶¹°ü»Ø´ð " + (i + 1) + "¡¿\n";
  393.         }
  394.         Êä³ö += ¶Ô»°.ÄÚÈÝ + "\n";
  395.         Êä³ö += "----------------------------------------\n\n";
  396.     }

  397.     Êä³ö += "\n===== ²É¼¯½áÊø =====\n";
  398.     return Êä³ö;
  399. }

  400. // дÈëÎļþ£¨UTF-8 BOM¸ñʽ£¬¼æÈÝWindows¼Çʱ¾£©
  401. function дÈëÎļþ(Îļþ·¾¶, ÄÚÈÝ) {
  402.     try {
  403.         var fos = new java.io.FileOutputStream(Îļþ·¾¶);
  404.         var osw = new java.io.OutputStreamWriter(fos, "UTF-8");
  405.         osw.write('\ufeff');
  406.         osw.write(ÄÚÈÝ);
  407.         osw.flush();
  408.         osw.close();
  409.         fos.close();
  410.         print.log("✓ ÒÑдÈëÎļþ£¨UTF-8 BOM£©£º" + Îļþ·¾¶);
  411.         
  412.         var catResult = agent.shell("cat " + Îļþ·¾¶ + " | head -3");
  413.         print.log("✓ catÑéÖ¤½á¹û£º" + catResult);
  414.         
  415.         var fileSize = agent.shell("ls -la " + Îļþ·¾¶);
  416.         print.log("✓ ÎļþÐÅÏ¢£º" + fileSize);
  417.         
  418.         return true;
  419.     } catch (e) {
  420.         print.log("⚠ UTF-8 BOMдÈëÒì³££º" + e.message);
  421.     }

  422.     try {
  423.         var fos2 = new java.io.FileOutputStream(Îļþ·¾¶);
  424.         fos2.write(239);
  425.         fos2.write(187);
  426.         fos2.write(191);
  427.         fos2.write(ÄÚÈÝ.getBytes("UTF-8"));
  428.         fos2.close();
  429.         print.log("✓ ÒÑдÈëÎļþ£¨×Ö½ÚдÈëBOM£©£º" + Îļþ·¾¶);
  430.         return true;
  431.     } catch (e2) {
  432.         print.log("⚠ ×Ö½ÚдÈëÒì³££º" + e2.message);
  433.     }

  434.     print.log("✗ дÈëÎļþʧ°Ü£º" + Îļþ·¾¶);
  435.     return false;
  436. }

  437. // ========== Ö÷Á÷³Ì¿ªÊ¼ ==========

  438. // ²½Öè1£ºÆô¶¯¶¹°üAPP
  439. print.log("\n========== ²½Öè1£ºÆô¶¯¶¹°üAPP ==========");
  440. try {
  441.     app.openApp(¶¹°ü°üÃû);
  442.     print.log("✓ ÒÑÆô¶¯¶¹°ü");
  443. } catch (e) {
  444.     print.log("⚠ Æô¶¯Ê§°Ü£º" + e.message);
  445. }
  446. sleep.second(Ãë = 5);

  447. // ²½Öè2£ºÈ·ÈϽøÈë¶Ô»°Ò³Ãæ
  448. print.log("\n========== ²½Öè2£ºÈ·ÈϽøÈë¶Ô»°Ò³Ãæ ==========");
  449. var xml = »ñÈ¡UI();
  450. if (xml.indexOf("message_list") === -1) {
  451.     print.log("⚠ µ±Ç°Ò³Ãæ¿ÉÄܲ»ÊǶ¹°ü¶Ô»°Ò³£¬Ôٴεȴý");
  452.     sleep.second(Ãë = 3);
  453.     xml = »ñÈ¡UI();
  454. }

  455. if (xml.indexOf("message_list") !== -1) {
  456.     print.log("✓ ÒѽøÈë¶¹°ü¶Ô»°Ò³Ãæ");
  457. } else {
  458.     print.log("⚠ δ¼ì²âµ½ÏûÏ¢ÁÐ±í£¬¼ÌÐø³¢ÊÔ");
  459. }

  460. // ²½Öè3£ºÑ­»··¢ËÍÎÊÌâ²¢²É¼¯»Ø´ð
  461. print.log("\n========== ²½Öè3£ºÑ­»··¢ËÍÎÊÌâ²¢²É¼¯»Ø´ð ==========");

  462. // ÍêÕû¶Ô»°ÁÐ±í£¨°üº¬Óû§ÎÊÌâºÍAI»Ø´ð£©
  463. var ÍêÕû¶Ô»° = [];

  464. // ÏȲɼ¯µ±Ç°Ò³ÃæÒÑÓеÄAI»Ø´ð
  465. var ÒÑÓлشð = ²É¼¯AI»Ø´ðÁбí(xml);
  466. print.log("✓ µ±Ç°Ò³ÃæÒÑÓÐAI»Ø´ðÊýÁ¿£º" + ÒÑÓлشð.length);
  467. for (var i = 0; i < ÒÑÓлشð.length; i++) {
  468.     ÍêÕû¶Ô»°.push({
  469.         ½ÇÉ«: "AI",
  470.         ÄÚÈÝ: ÒÑÓлشð[i]
  471.     });
  472. }

  473. // ¿ªÊ¼·¢ËÍÎÊÌâ
  474. for (var q = 0; q < Òª·¢Ë͵ÄÎÊÌâÁбí.length; q++) {
  475.     var µ±Ç°ÎÊÌâ = Òª·¢Ë͵ÄÎÊÌâÁбí[q];
  476.     print.log("\n---- µÚ " + (q + 1) + " / " + Òª·¢Ë͵ÄÎÊÌâÁбí.length + " ¸öÎÊÌâ ----");
  477.     print.log("ÎÊÌ⣺" + µ±Ç°ÎÊÌâ);

  478.     // 3.1 ÖØÐ»ñÈ¡UI£¬¶¨Î»ÊäÈë¿ò
  479.     xml = »ñÈ¡UI();
  480.     var ÊäÈë¿ò = ²éÕÒÊäÈë¿òÖÐÐÄ(xml);
  481.     if (!ÊäÈë¿ò) {
  482.         print.log("⚠ δÕÒµ½ÊäÈë¿ò£¬Ìø¹ý´ËÎÊÌâ");
  483.         sleep.second(Ãë = ÎÊÌâ¼ä¸ôÃë);
  484.         continue;
  485.     }

  486.     // 3.2 ¼Ç¼·¢ËÍǰµÄ×îºóÒ»ÌõAI»Ø´ðÎı¾£¨×÷Ϊ¼ì²âлشðµÄ»ùÏߣ©
  487.     var ·¢ËÍǰ×îºóÎı¾ = »ñÈ¡µ±Ç°×îºóAI»Ø´ð(xml);

  488.     // 3.3 µã»÷ÊäÈë¿ò»ñÈ¡½¹µã
  489.     agent.click(ÊäÈë¿ò.x, ÊäÈë¿ò.y);
  490.     sleep.second(Ãë = 1);

  491.     // 3.4 Õ³ÌùÎÊÌâÎı¾
  492.     Õ³ÌùÎı¾(µ±Ç°ÎÊÌâ);

  493.     // 3.5 ÖØÐ»ñÈ¡UI£¬²éÕÒ·¢ËͰ´Å¥
  494.     xml = »ñÈ¡UI();
  495.     var ·¢ËͰ´Å¥ = ²éÕÒ·¢ËͰ´Å¥ÖÐÐÄ(xml);

  496.     if (·¢ËͰ´Å¥) {
  497.         agent.click(·¢ËͰ´Å¥.x, ·¢ËͰ´Å¥.y);
  498.         print.log("✓ Òѵã»÷·¢ËͰ´Å¥");
  499.     } else {
  500.         // ¶µµ×£º°´»Ø³µ¼ü·¢ËÍ
  501.         agent.shell("input keyevent 66");
  502.         print.log("⚠ δÕÒµ½·¢ËͰ´Å¥£¬Òѳ¢ÊÔ°´»Ø³µ·¢ËÍ");
  503.     }

  504.     // 3.6 ¼Ç¼Óû§ÎÊÌâ
  505.     ÍêÕû¶Ô»°.push({
  506.         ½ÇÉ«: "Óû§",
  507.         ÄÚÈÝ: µ±Ç°ÎÊÌâ
  508.     });

  509.     // 3.7 µÈ´ýAI»Ø´ðÍê³É£¨»ùÓÚ"×îºóÒ»Ìõ»Ø´ðÎı¾±ä»¯"Åжϣ¬²»ÒÀÀµÊýÁ¿µÝÔö£©
  510.     print.log("µÈ´ýAI»Ø´ð£¬·¢ËÍǰ×îºóÎı¾³¤¶È£º" + ×Ö·û´®³¤¶È(·¢ËÍǰ×îºóÎı¾));

  511.     var лشðÎı¾ = µÈ´ýAI»Ø´ðÍê³É(·¢ËÍǰ×îºóÎı¾);
  512.     if (лشðÎı¾ && ×Ö·û´®³¤¶È(лشðÎı¾) > 0) {
  513.         ÍêÕû¶Ô»°.push({
  514.             ½ÇÉ«: "AI",
  515.             ÄÚÈÝ: лشðÎı¾
  516.         });
  517.         print.log("✓ ²É¼¯µ½Ð»ش𣬵±Ç°×ܶԻ°ÌõÊý£º" + ÍêÕû¶Ô»°.length);
  518.         print.log("--- ²É¼¯ÄÚÈÝ¿ªÊ¼ ---");
  519.         print.log(лشðÎı¾);
  520.         print.log("--- ²É¼¯ÄÚÈݽáÊø ---");
  521.     } else {
  522.         print.log("⚠ δÄܲɼ¯µ½Ð»شð");
  523.     }

  524.     sleep.second(Ãë = ÎÊÌâ¼ä¸ôÃë);
  525. }

  526. // ²½Öè4£º±£´æ¶Ô»°µ½Îļþ
  527. print.log("\n========== ²½Öè4£º±£´æ¶Ô»°µ½Îļþ ==========");
  528. var Êä³öÄÚÈÝ = ¸ñʽ»¯¶Ô»°(ÍêÕû¶Ô»°);
  529. var дÈë³É¹¦ = дÈëÎļþ(Êä³öÎļþ·¾¶, Êä³öÄÚÈÝ);

  530. if (дÈë³É¹¦) {
  531.     print.log("✓ ¶Ô»°Òѱ£´æµ½£º" + Êä³öÎļþ·¾¶);
  532.     print.log("✓ ×ܶԻ°ÌõÊý£º" + ÍêÕû¶Ô»°.length);
  533. } else {
  534.     print.log("✗ ±£´æÊ§°Ü£¬Çë¼ì²é´æ´¢È¨ÏÞ");
  535. }

  536. // ²½Öè5£º´òÓ¡È«²¿²É¼¯µ½µÄ¶Ô»°ÄÚÈÝ
  537. print.log("\n========== È«²¿²É¼¯ÄÚÈÝ ==========");
  538. print.log(Êä³öÄÚÈÝ);
  539. print.log("========== ÄÚÈݽáÊø ==========");

  540. print.log("\n===== ¶¹°ü¶Ô»°²É¼¯Á÷³Ì½áÊø =====");
¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³Ì×¨Çø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æÈ¨Èí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2026-7-13 07:39 , Processed in 0.199778 second(s), 36 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí