安卓脚本浏览器百度搜索自动化

380

主题

193

回帖

2397

积分

管理员

积分
2397
安卓脚本浏览器百度搜索自动化

1.png

2.png

  1. /**
  2. * 浏览器百度搜索自动化
  3. * 流程:打开浏览器 → 输入关键词 → 搜索 → 下滑 → 关闭浏览器 → 循环
  4. */

  5. // 导入包
  6. importClass(Packages.android.content.Intent);
  7. importClass(Packages.android.net.Uri);

  8. var LOOP_COUNT = 2; // 循环次数

  9. for (var i = 1; i <= LOOP_COUNT; i++) {

  10. printl();
  11. print.log("=== 第 " + i + " 次循环开始 ===");

  12. // 1. 打开系统浏览器并访问百度
  13. print.log("正在打开系统浏览器...");
  14. var intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.baidu.com"));
  15. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  16. context.startActivity(intent);
  17. sleep.second(秒=3); // 等待浏览器启动

  18. // 2. 等待页面加载完成
  19. print.log("等待百度页面加载...");
  20. sleep.second(秒=2);

  21. // 3. 使用OCR识别"输入"并点击
  22. print.log("查找'输入'...");
  23. var ocr1 = opencv.OCREx('图色534260.cv');
  24. if (ocr1 != null) {
  25.     var searchBoxText = ocr1.getAllString();
  26.     print.log("识别到文字: " + searchBoxText);
  27.    
  28.     // 使用 findIncludeText 查找包含"输入"的区域
  29.     var searchText = ocr1.findIncludeText("输入");
  30.     if (searchText != null) {
  31.         print.log("找到'输入'位置");
  32.         
  33.         // 从 rect 获取百分比坐标(rect.left/top/right/bottom 是 0-1 范围)
  34.         var rect = searchText.rect;
  35.         print.log("rect信息: left=" + rect.left + ", top=" + rect.top + ", right=" + rect.right + ", bottom=" + rect.bottom);
  36.         
  37.         var centerX = (rect.left + rect.right) / 2;
  38.         var centerY = (rect.top + rect.bottom) / 2;
  39.         print.log("中心点百分比坐标: X=" + centerX + ", Y=" + centerY);
  40.         
  41.         // 将百分比坐标转换为像素坐标
  42.         var pixelX = screen.percentToWidth(centerX);
  43.         var pixelY = screen.percentToHeight(centerY);
  44.         print.log("中心点像素坐标: X=" + pixelX + ", Y=" + pixelY);
  45.         
  46.         // 点击输入框激活焦点
  47.         print.log("正在点击输入框...");
  48.         auto.clickPoint(pixelX, pixelY);
  49.         print.log("已点击输入框,等待2秒...");
  50.         sleep.second(秒=2); // 等待2秒让输入框获得焦点
  51.     }
  52. }

  53. // 使用OCR识别并粘贴关键词

  54. // 使用OCR识别"输入关键词"
  55. var ocr1 = opencv.OCREx('图色534260.cv');
  56. if (ocr1 != null) {
  57.     var allText = ocr1.getAllString();
  58.     print.log("识别到的文字: " + allText);
  59.    
  60.     // 查找包含"输入"的区域(根据实际识别结果)
  61.     var searchText = ocr1.findIncludeText("输入");
  62.     if (searchText != null) {
  63.         print.log("找到'输入'位置");
  64.         
  65.         // 从 rect 获取百分比坐标(rect.left/top/right/bottom 是 0-1 范围)
  66.         var rect = searchText.rect;
  67.         print.log("rect信息: left=" + rect.left + ", top=" + rect.top + ", right=" + rect.right + ", bottom=" + rect.bottom);
  68.         
  69.         // 计算中心点百分比坐标
  70.         var centerX = (rect.left + rect.right) / 2;
  71.         var centerY = (rect.top + rect.bottom) / 2;
  72.         print.log("中心点百分比坐标: X=" + centerX + ", Y=" + centerY);
  73.         
  74.         // 将百分比坐标转换为像素坐标
  75.         var pixelX = screen.percentToWidth(centerX);
  76.         var pixelY = screen.percentToHeight(centerY);
  77.         print.log("中心点像素坐标: X=" + pixelX + ", Y=" + pixelY);
  78.         
  79.         // 先点击一下激活输入框
  80.         print.log("正在点击输入框...");
  81.         auto.clickPoint(pixelX, pixelY);
  82.         sleep.second(秒=2);
  83.         print.log("已点击输入框");
  84.         
  85.         // 写入剪贴板
  86.         print.log("写入剪贴板: AIWROK自动化测试");
  87.         Clipboard.copy("AIWROK自动化测试");
  88.         sleep.second(秒=0.5);
  89.         
  90.         // 长按输入框调出粘贴菜单
  91.         print.log("正在长按输入框调出粘贴菜单...");
  92.         print.log("长按坐标: X=" + pixelX + ", Y=" + pixelY);
  93.         auto.longClickPoint(pixelX, pixelY, 1000);
  94.         print.log("长按完成,等待2秒让菜单完全显示...");
  95.         sleep.second(秒=2); // 增加等待时间,让粘贴菜单完全显示
  96.         
  97.         // 使用OCR识别"粘帖"按钮并点击(注意是"帖"不是"贴")
  98.         print.log("尝试识别'粘帖'按钮...");
  99.         var ocrPaste = opencv.OCREx('图色162482.cv');
  100.         if (ocrPaste != null) {
  101.             var allPasteText = ocrPaste.getAllString();
  102.             print.log("识别到的粘贴区域文字: " + allPasteText);
  103.             
  104.             var pasteText = ocrPaste.findIncludeText("粘帖");
  105.             if (pasteText != null) {
  106.                 var pasteRect = pasteText.rect;
  107.                 var pasteCenterX = (pasteRect.left + pasteRect.right) / 2;
  108.                 var pasteCenterY = (pasteRect.top + pasteRect.bottom) / 2;
  109.                 var pastePixelX = screen.percentToWidth(pasteCenterX);
  110.                 var pastePixelY = screen.percentToHeight(pasteCenterY);
  111.                 print.log("找到'粘贴'按钮,坐标: X=" + pastePixelX + ", Y=" + pastePixelY);
  112.                 auto.clickPoint(pastePixelX, pastePixelY);
  113.                 print.log("已点击粘贴按钮");
  114.                 sleep.second(秒=1);
  115.             }
  116.         }
  117.     }
  118. }

  119. // 点击百度一下按钮
  120. print.log("点击搜索按钮...");
  121. var detects=opencv.findImagesEx('图色385583.cv');
  122. if(detects!=null){
  123.    printl(detects);
  124.    detects[0].click();
  125.    print.log("已点击搜索按钮");
  126.    sleep.second(秒=3); // 等待搜索结果加载
  127. }

  128. // 下滑到底部
  129. print.log("下滑到底部...");
  130. auto.swip(screen.getScreenWidth() / 2, screen.getScreenHeight() * 0.8, screen.getScreenWidth() / 2, screen.getScreenHeight() * 0.2, 500, 0);
  131. sleep.second(秒=1);
  132. print.log("下滑完成");

  133. // 关闭浏览器
  134. print.log("正在关闭浏览器...");
  135. app.closeApp("com.android.browser");
  136. sleep.second(秒=1);
  137. print.log("浏览器已关闭");

  138. print.log("=== 第 " + i + " 次循环完成 ===");

  139. } // end for loop

  140. printl();
  141. print.log("=== 所有循环已完成 ===");
  142. toast.show('浏览器百度搜索自动化完成!');

复制代码


3.png
4.png

举报 回复