Procházet zdrojové kódy

修改群控逻辑

syh před 5 roky
rodič
revize
a3b78af5ce

+ 5 - 0
jeecg-boot-module-system/src/main/resources/application-dev.yml

@@ -142,3 +142,8 @@ jeecg:
     image-upload: D://upFiles//image//
     chrome-driver: D://chromedriver.exe
     csv-upload: D://upFiles//csv//
+kuaishou:
+  group-control:
+    path: http://127.0.0.1
+    port: 4723
+

+ 4 - 0
jeecg-boot-module-system/src/main/resources/application-prod.yml

@@ -145,4 +145,8 @@ jeecg:
     image-upload: /mnt/upload/image/
     chrome-driver: /usr/bin/chromedriver
     csv-upload: /mnt/upload/csv/
+kuaishou:
+  group-control:
+    path: http://39.106.184.70
+    port: 4723
 

+ 7 - 2
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumTaskServiceImpl.java

@@ -13,6 +13,7 @@ import cn.com.ctop.crawler.modules.core.util.AppiumUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.appium.java_client.android.AndroidDriver;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -25,6 +26,10 @@ import java.util.List;
  */
 @Service
 public class AppiumTaskServiceImpl extends ServiceImpl<AppiumTaskMapper, AppiumTask> implements IAppiumTaskService {
+    @Value("${kuaishou.group-control.path}")
+    private String groupControlPath;
+    @Value("${kuaishou.group-control.port}")
+    private String groupControlPort;
     @Autowired
     private IAppiumTaskItemService iAppiumTaskItemService;
     @Autowired
@@ -49,10 +54,11 @@ public class AppiumTaskServiceImpl extends ServiceImpl<AppiumTaskMapper, AppiumT
         log.setTaskName(task.getTaskName());
         appiumTaskLogMapper.insert(log);
         log.setId(log.getId());
+        //查询所需运行的任务列表
         List<AppiumTaskItem> taskItemList = iAppiumTaskItemService.initTaskItemList(taskId, null);
         AppiumUtil appiumUtil = new AppiumUtil();
         try {
-            AndroidDriver androidDriver = appiumUtil.initAndroidDriver("http://39.106.184.70:4723/wd/hub", appiumDevice.getIp() + ":" + appiumDevice.getPort(), task.getAppPackage(), task.getAppActivity());
+            AndroidDriver androidDriver = appiumUtil.initAndroidDriver(groupControlPath + ":" + groupControlPort + "/wd/hub", appiumDevice.getIp() + ":" + appiumDevice.getPort(), task.getAppPackage(), task.getAppActivity());
             if (taskItemList != null && taskItemList.size() > 0) {
                 for (AppiumTaskItem appiumTaskItem : taskItemList) {
                     appiumUtil.runTask(androidDriver, appiumTaskItem, null);
@@ -71,5 +77,4 @@ public class AppiumTaskServiceImpl extends ServiceImpl<AppiumTaskMapper, AppiumT
         }
     }
 
-
 }

+ 129 - 212
module-crawler/src/main/java/cn/com/ctop/crawler/modules/core/util/AppiumUtil.java

@@ -6,6 +6,7 @@ import io.appium.java_client.TouchAction;
 import io.appium.java_client.android.AndroidDriver;
 import io.appium.java_client.touch.WaitOptions;
 import io.appium.java_client.touch.offset.PointOption;
+import lombok.extern.slf4j.Slf4j;
 import org.openqa.selenium.Point;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.remote.DesiredCapabilities;
@@ -14,10 +15,19 @@ import java.net.URL;
 import java.time.Duration;
 import java.util.List;
 
+@Slf4j
 public class AppiumUtil {
     private Boolean isLoop = true;
     private Duration duration = Duration.ofSeconds(1);
 
+    public static final String FIND_ELEMENT_TYPE_ID = "id";
+    public static final String FIND_ELEMENT_TYPE_XPATH = "xpath";
+    public static final String FIND_ELEMENT_TYPE_CLASS = "class";
+    public static final String APP_SWIPE_TYPE_UP = "up";
+    public static final String APP_SWIPE_TYPE_DOWN = "down";
+    public static final String APP_SWIPE_TYPE_LEFT = "left";
+    public static final String APP_SWIPE_TYPE_RIGHT = "right";
+
     public void swipeToUp(AndroidDriver driver) {
         int width = driver.manage().window().getSize().width;
         int height = driver.manage().window().getSize().height;
@@ -85,7 +95,7 @@ public class AppiumUtil {
     public void loginKuaishou(AndroidDriver androidDriver) {
         try {
             Thread.sleep(3000L);
-            WebElement closeBtn1 = getElementById(androidDriver, "com.smile.gifmaker:id/close_iv");
+            WebElement closeBtn1 = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/close_iv");
             if (closeBtn1 != null) {
                 closeBtn1.click();
             }
@@ -94,7 +104,7 @@ public class AppiumUtil {
                 permissionAllow(androidDriver);
             }
             Thread.sleep(3000);
-            WebElement continueBtn1 = getElementById(androidDriver, "com.smile.gifmaker:id/positive");
+            WebElement continueBtn1 = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/positive");
             if (continueBtn1 != null) {
                 continueBtn1.click();
             }
@@ -102,41 +112,41 @@ public class AppiumUtil {
                 Thread.sleep(3000L);
                 closeBtnClick(androidDriver);
             }
-            WebElement loginBtn = getElementById(androidDriver, "com.smile.gifmaker:id/left_text");
+            WebElement loginBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/left_text");
             System.out.println(loginBtn.getText());
             if (loginBtn != null && loginBtn.getText().equals("登录")) {
                 loginBtn.click();
                 Thread.sleep(3000L);
 
-                WebElement mobileLoginBtn = getElementById(androidDriver, "com.smile.gifmaker:id/phone_login_view");
+                WebElement mobileLoginBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/phone_login_view");
                 if (mobileLoginBtn != null) {
                     mobileLoginBtn.click();
                     Thread.sleep(2000L);
                 }
-                WebElement mobileInput = getElementById(androidDriver, "com.smile.gifmaker:id/login_name_et");
-                WebElement loginTypeBtn = getElementById(androidDriver, "com.smile.gifmaker:id/phone_one_key_login_btn");
-                WebElement mobileLogin = getElementById(androidDriver, "com.smile.gifmaker:id/phone_et");
+                WebElement mobileInput = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/login_name_et");
+                WebElement loginTypeBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/phone_one_key_login_btn");
+                WebElement mobileLogin = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/phone_et");
                 if (mobileInput != null) {
                     String token = KuaimiUtil.kuaimiLogin();
                     String mobile = KuaimiUtil.getMobile(token, "2307");
                     mobileInput.sendKeys(mobile);
                     Thread.sleep(2000L);
-                    WebElement nextBtn = getElementById(androidDriver, "com.smile.gifmaker:id/next_view");
+                    WebElement nextBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/next_view");
                     nextBtn.click();
                     Thread.sleep(5000L);
-                    WebElement pintu = getElementById(androidDriver, "com.smile.gifmaker:id/title_tv");
+                    WebElement pintu = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/title_tv");
                     if (pintu != null && pintu.getText().equals("拖动滑块")) {
-                        WebElement leftBtn1 = getElementById(androidDriver, "com.smile.gifmaker:id/left_btn");
+                        WebElement leftBtn1 = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/left_btn");
                         leftBtn1.click();
                         return;
                     }
-                    WebElement loginTitle = getElementById(androidDriver, "com.smile.gifmaker:id/login_title_tv");
-                    WebElement forgetBtn = getElementById(androidDriver, "com.smile.gifmaker:id/forget_psd_btn");
-                    WebElement captcha = getElementById(androidDriver, "com.smile.gifmaker:id/captcha_et");
+                    WebElement loginTitle = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/login_title_tv");
+                    WebElement forgetBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/forget_psd_btn");
+                    WebElement captcha = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/captcha_et");
                     if (loginTitle != null && loginTitle.getText().equals("输入密码")) {
                         forgetBtn.click();
                         Thread.sleep(2000L);
-                        WebElement sendMsgBtn = getElementById(androidDriver, "com.smile.gifmaker:id/verify_tv");
+                        WebElement sendMsgBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/verify_tv");
                         sendMsgBtn.click();
                         Thread.sleep(5000L);
                         int i = 0;
@@ -148,37 +158,37 @@ public class AppiumUtil {
                                 System.out.println("等待" + mobile + "短信验证码");
                             }
                             if (msg != null) {
-                                WebElement captchrInput = getElementById(androidDriver, "com.smile.gifmaker:id/verify_et");
+                                WebElement captchrInput = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/verify_et");
                                 captchrInput.sendKeys(msg);
                                 Thread.sleep(2000);
-                                WebElement confirmBtn = getElementById(androidDriver, "com.smile.gifmaker:id/confirm_btn");
+                                WebElement confirmBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/confirm_btn");
                                 confirmBtn.click();
                                 Thread.sleep(2000);
-                                WebElement resetSelect = getElementById(androidDriver, "com.smile.gifmaker:id/avatar_layout_one");
+                                WebElement resetSelect = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/avatar_layout_one");
                                 if (resetSelect != null) {
                                     resetSelect.click();
                                     Thread.sleep(2000);
                                 }
-                                WebElement newPwdInput = getElementById(androidDriver, "com.smile.gifmaker:id/login_psd_et");
+                                WebElement newPwdInput = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/login_psd_et");
                                 newPwdInput.sendKeys("a123456");
                                 Thread.sleep(2000);
-                                WebElement confirmBtn2 = getElementById(androidDriver, "com.smile.gifmaker:id/confirm_btn");
+                                WebElement confirmBtn2 = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/confirm_btn");
                                 confirmBtn2.click();
                                 Thread.sleep(3000);
-                                WebElement continueBtn = getElementById(androidDriver, "com.smile.gifmaker:id/positive");
+                                WebElement continueBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/positive");
                                 if (continueBtn != null) {
                                     continueBtn.click();
                                 }
                                 for (int j = 0; j < 3; j++) {
                                     Thread.sleep(3000);
-                                    WebElement leftBtn = getElementById(androidDriver, "com.smile.gifmaker:id/left_btn");
+                                    WebElement leftBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/left_btn");
                                     if (leftBtn != null) {
                                         leftBtn.click();
                                     }
                                 }
 
                                 Thread.sleep(3000);
-                                WebElement headImg = getElementById(androidDriver, "com.smile.gifmaker:id/tab_avatar");
+                                WebElement headImg = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/tab_avatar");
                                 if (headImg != null) {
                                     headImg.click();
                                     Thread.sleep(3000);
@@ -186,7 +196,7 @@ public class AppiumUtil {
                                     Thread.sleep(3000);
 //                                    WebElement qrCode = getElementById(androidDriver,"com.smile.gifmaker:id/qr_code_image");
 //                                    qrCode.click();
-                                    WebElement kwid = getElementById(androidDriver, "com.smile.gifmaker:id/kwai_id");
+                                    WebElement kwid = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/kwai_id");
                                     System.out.println(kwid.getText());
                                 }
 
@@ -210,31 +220,31 @@ public class AppiumUtil {
                             }
                             if (msg != null) {
                                 Thread.sleep(2000);
-                                WebElement captchaInput = getElementById(androidDriver, "com.smile.gifmaker:id/captcha_et");
+                                WebElement captchaInput = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/captcha_et");
                                 captchaInput.sendKeys(msg);
-                                WebElement captchaConfirm = getElementById(androidDriver, "com.smile.gifmaker:id/captcha_finish");
+                                WebElement captchaConfirm = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/captcha_finish");
                                 Thread.sleep(5000);
                                 captchaConfirm.click();
                                 System.out.println(msg);
                                 Thread.sleep(5000);
-                                WebElement icon = getElementByXpath(androidDriver, "//android.widget.ImageView[@content-desc=\"头像\"]");
+                                WebElement icon = getElementByType(androidDriver, FIND_ELEMENT_TYPE_XPATH, "//android.widget.ImageView[@content-desc=\"头像\"]");
                                 if (icon != null) {
                                     icon.click();
                                 }
                                 Thread.sleep(3000);
-                                WebElement continueBtn = getElementById(androidDriver, "com.smile.gifmaker:id/positive");
+                                WebElement continueBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/positive");
                                 if (continueBtn != null) {
                                     continueBtn.click();
                                 }
                                 for (int j = 0; j < 3; j++) {
                                     Thread.sleep(3000);
-                                    WebElement leftBtn = getElementById(androidDriver, "com.smile.gifmaker:id/left_btn");
+                                    WebElement leftBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/left_btn");
                                     if (leftBtn != null) {
                                         leftBtn.click();
                                     }
                                 }
                                 Thread.sleep(3000);
-                                WebElement headImg = getElementById(androidDriver, "com.smile.gifmaker:id/tab_avatar");
+                                WebElement headImg = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/tab_avatar");
                                 if (headImg != null) {
                                     headImg.click();
                                     Thread.sleep(3000);
@@ -242,7 +252,7 @@ public class AppiumUtil {
                                     Thread.sleep(3000);
 //                                    WebElement qrCode = getElementById(androidDriver,"com.smile.gifmaker:id/qr_code_image");
 //                                    qrCode.click();
-                                    WebElement kwid = getElementById(androidDriver, "com.smile.gifmaker:id/kwai_id");
+                                    WebElement kwid = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/kwai_id");
                                     System.out.println(kwid.getText());
                                 }
                                 //封禁
@@ -259,28 +269,28 @@ public class AppiumUtil {
                 if (loginTypeBtn != null) {
                     loginTypeBtn.click();
                     Thread.sleep(5000);
-                    mobileInput = getElementById(androidDriver, "com.smile.gifmaker:id/login_name_et");
+                    mobileInput = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/login_name_et");
                     if (mobileInput != null) {
                         String token = KuaimiUtil.kuaimiLogin();
                         String mobile = KuaimiUtil.getMobile(token, "2307");
                         mobileInput.sendKeys(mobile);
                         Thread.sleep(2000L);
-                        WebElement nextBtn = getElementById(androidDriver, "com.smile.gifmaker:id/next_view");
+                        WebElement nextBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/next_view");
                         nextBtn.click();
                         Thread.sleep(5000L);
-                        WebElement pintu = getElementById(androidDriver, "com.smile.gifmaker:id/title_tv");
+                        WebElement pintu = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/title_tv");
                         if (pintu != null && pintu.getText().equals("拖动滑块")) {
-                            WebElement leftBtn1 = getElementById(androidDriver, "com.smile.gifmaker:id/left_btn");
+                            WebElement leftBtn1 = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/left_btn");
                             leftBtn1.click();
                             return;
                         }
-                        WebElement loginTitle = getElementById(androidDriver, "com.smile.gifmaker:id/login_title_tv");
-                        WebElement forgetBtn = getElementById(androidDriver, "com.smile.gifmaker:id/forget_psd_btn");
-                        WebElement captcha = getElementById(androidDriver, "com.smile.gifmaker:id/captcha_et");
+                        WebElement loginTitle = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/login_title_tv");
+                        WebElement forgetBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/forget_psd_btn");
+                        WebElement captcha = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/captcha_et");
                         if (loginTitle != null && loginTitle.getText().equals("输入密码")) {
                             forgetBtn.click();
                             Thread.sleep(2000L);
-                            WebElement sendMsgBtn = getElementById(androidDriver, "com.smile.gifmaker:id/verify_tv");
+                            WebElement sendMsgBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/verify_tv");
                             sendMsgBtn.click();
                             Thread.sleep(5000L);
                             int i = 0;
@@ -292,35 +302,35 @@ public class AppiumUtil {
                                     System.out.println("等待" + mobile + "短信验证码");
                                 }
                                 if (msg != null) {
-                                    WebElement captchrInput = getElementById(androidDriver, "com.smile.gifmaker:id/verify_et");
+                                    WebElement captchrInput = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/verify_et");
                                     captchrInput.sendKeys(msg);
                                     Thread.sleep(5000);
-                                    WebElement confirmBtn = getElementById(androidDriver, "com.smile.gifmaker:id/confirm_btn");
+                                    WebElement confirmBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/confirm_btn");
                                     confirmBtn.click();
                                     Thread.sleep(5000);
-                                    WebElement newPwdInput = getElementById(androidDriver, "com.smile.gifmaker:id/login_psd_et");
+                                    WebElement newPwdInput = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/login_psd_et");
                                     newPwdInput.sendKeys("a123456");
                                     Thread.sleep(5000);
-                                    WebElement confirmBtn2 = getElementById(androidDriver, "com.smile.gifmaker:id/confirm_btn");
+                                    WebElement confirmBtn2 = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/confirm_btn");
                                     confirmBtn2.click();
                                     Thread.sleep(3000);
-                                    WebElement continueBtn = getElementById(androidDriver, "com.smile.gifmaker:id/positive");
+                                    WebElement continueBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/positive");
                                     if (continueBtn != null) {
                                         continueBtn.click();
                                     }
                                     for (int j = 0; i < 3; j++) {
                                         Thread.sleep(3000);
-                                        WebElement leftBtn = getElementById(androidDriver, "com.smile.gifmaker:id/left_btn");
+                                        WebElement leftBtn = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/left_btn");
                                         leftBtn.click();
                                     }
 
-                                    WebElement headImg = getElementById(androidDriver, "com.smile.gifmaker:id/tab_avatar");
+                                    WebElement headImg = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/tab_avatar");
                                     if (headImg != null) {
                                         headImg.click();
                                         Thread.sleep(3000);
-                                        WebElement qrCode = getElementById(androidDriver, "com.smile.gifmaker:id/qr_code_image");
+                                        WebElement qrCode = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/qr_code_image");
                                         qrCode.click();
-                                        WebElement kwid = getElementById(androidDriver, "com.smile.gifmaker:id/kwai_id");
+                                        WebElement kwid = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/kwai_id");
                                         System.out.println(kwid.getText());
                                     }
                                     //封禁判断
@@ -343,14 +353,14 @@ public class AppiumUtil {
                                     System.out.println("等待" + mobile + "短信验证码");
                                 }
                                 if (msg != null) {
-                                    WebElement captchaInput = getElementById(androidDriver, "com.smile.gifmaker:id/captcha_et");
+                                    WebElement captchaInput = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/captcha_et");
                                     captchaInput.sendKeys(msg);
-                                    WebElement captchaConfirm = getElementById(androidDriver, "com.smile.gifmaker:id/captcha_finish");
+                                    WebElement captchaConfirm = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/captcha_finish");
                                     Thread.sleep(2000);
                                     captchaConfirm.click();
                                     System.out.println(msg);
                                     Thread.sleep(5000);
-                                    WebElement icon = getElementByXpath(androidDriver, "//android.widget.ImageView[@content-desc=\"头像\"]");
+                                    WebElement icon = getElementByType(androidDriver, FIND_ELEMENT_TYPE_XPATH, "//android.widget.ImageView[@content-desc=\"头像\"]");
                                     if (icon != null) {
                                         icon.click();
                                     }
@@ -360,106 +370,12 @@ public class AppiumUtil {
                             }
                         }
                     }
-
-
                 }
                 if (mobileLogin != null) {
                     String token = KuaimiUtil.kuaimiLogin();
                     String mobile = KuaimiUtil.getMobile(token, "2307");
                     mobileLogin.sendKeys(mobile);
                     Thread.sleep(5000L);
-//                    WebElement nextBtn = getElementById(androidDriver, "com.smile.gifmaker:id/next_view");
-//                    nextBtn.click();
-//                    Thread.sleep(5000L);
-//                    WebElement pintu = getElementById(androidDriver,"com.smile.gifmaker:id/title_tv");
-//                    if(pintu != null && pintu.getText().equals("拖动滑块")){
-//                        WebElement leftBtn1 = getElementById(androidDriver,"com.smile.gifmaker:id/left_btn");
-//                        leftBtn1.click();
-//                        return;
-//                    }
-//                    WebElement loginTitle = getElementById(androidDriver, "com.smile.gifmaker:id/login_title_tv");
-//                    WebElement forgetBtn = getElementById(androidDriver, "com.smile.gifmaker:id/forget_psd_btn");
-//                    WebElement captcha = getElementById(androidDriver,"com.smile.gifmaker:id/captcha_et");
-//                    if (loginTitle != null && loginTitle.getText().equals("输入密码")) {
-//                        forgetBtn.click();
-//                        Thread.sleep(2000L);
-//                        WebElement sendMsgBtn = getElementById(androidDriver, "com.smile.gifmaker:id/verify_tv");
-//                        sendMsgBtn.click();
-//                        Thread.sleep(5000L);
-//                        int i = 0;
-//                        String msg = null;
-//                        while (i < 20) {
-//                            try {
-//                                msg = KuaimiUtil.getMessage(token, "2307", mobile);
-//                            } catch (Exception e) {
-//                                System.out.println("等待" + mobile + "短信验证码");
-//                            }
-//                            if (msg != null) {
-//                                WebElement captchrInput = getElementById(androidDriver, "com.smile.gifmaker:id/verify_et");
-//                                captchrInput.sendKeys(msg);
-//                                Thread.sleep(2000);
-//                                WebElement confirmBtn = getElementById(androidDriver, "com.smile.gifmaker:id/confirm_btn");
-//                                confirmBtn.click();
-//                                Thread.sleep(2000);
-//                                WebElement newPwdInput = getElementById(androidDriver, "com.smile.gifmaker:id/login_psd_et");
-//                                newPwdInput.sendKeys("a123456");
-//                                Thread.sleep(2000);
-//                                WebElement confirmBtn2 = getElementById(androidDriver, "com.smile.gifmaker:id/confirm_btn");
-//                                confirmBtn2.click();
-//                                Thread.sleep(3000);
-//                                WebElement continueBtn = getElementById(androidDriver, "com.smile.gifmaker:id/positive");
-//                                if (continueBtn != null) {
-//                                    continueBtn.click();
-//                                }
-//                                for(int j = 0; i < 3;j++){
-//                                    Thread.sleep(3000);
-//                                    WebElement leftBtn = getElementById(androidDriver,"com.smile.gifmaker:id/left_btn");
-//                                    leftBtn.click();
-//                                }
-//
-//                                WebElement headImg = getElementById(androidDriver,"com.smile.gifmaker:id/tab_avatar");
-//                                if (headImg != null){
-//                                    headImg.click();
-//                                    WebElement qrCode = getElementById(androidDriver,"com.smile.gifmaker:id/qr_code_image");
-//                                    qrCode.click();
-//                                    WebElement kwid = getElementById(androidDriver,"com.smile.gifmaker:id/kwai_id");
-//                                    System.out.println(kwid.getText());
-//                                }
-//                                break;
-//                            }
-//                            i++;
-//                            Thread.sleep(5000);
-//                        }
-//                        if (i == 20) {
-//                            KuaimiUtil.addBlackList(token, "2307", mobile);
-//                        }
-//                    }else if(captcha != null){
-//                        int i = 0;
-//                        String msg = null;
-//                        while (i < 20) {
-//
-//                            try {
-//                                msg = KuaimiUtil.getMessage(token, "2307", mobile);
-//                            } catch (Exception e) {
-//                                System.out.println("等待" + mobile + "短信验证码");
-//                            }
-//                            if (msg != null) {
-//                                WebElement captchaInput = getElementById(androidDriver,"com.smile.gifmaker:id/captcha_et");
-//                                captchaInput.sendKeys(msg);
-//                                WebElement captchaConfirm = getElementById(androidDriver,"com.smile.gifmaker:id/captcha_finish");
-//                                Thread.sleep(2000);
-//                                captchaConfirm.click();
-//                                System.out.println(msg);
-//                                Thread.sleep(5000);
-//                                WebElement icon = getElementByXpath(androidDriver,"//android.widget.ImageView[@content-desc=\"头像\"]");
-//                                if (icon != null){
-//                                    icon.click();
-//                                }
-//                            }
-//                            i++;
-//                            Thread.sleep(5000);
-//                        }
-//                    }
                 }
             }
         } catch (Exception e) {
@@ -471,87 +387,71 @@ public class AppiumUtil {
     }
 
     public void permissionAllow(AndroidDriver androidDriver) {
-        WebElement element = getElementById(androidDriver, "com.android.packageinstaller:id/permission_allow_button");
+        WebElement element = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.android.packageinstaller:id/permission_allow_button");
         if (element != null) {
             element.click();
         }
     }
 
     public void closeBtnClick(AndroidDriver androidDriver) {
-        WebElement element = getElementById(androidDriver, "com.smile.gifmaker:id/close_btn");
+        WebElement element = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/close_btn");
         if (element != null) {
             element.click();
         }
     }
 
     public void backToMain(AndroidDriver androidDriver) {
-        WebElement element = getElementById(androidDriver, "com.smile.gifmaker:id/back_btn");
+        WebElement element = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/back_btn");
         if (null != element) {
             element.click();
         }
     }
 
-    public void checkAdvertiser(AndroidDriver androidDriver, String advertiserName) {
-        WebElement label = getElementById(androidDriver, "com.smile.gifmaker:id/label");
-        String text = label.getText().substring(0, label.getText().indexOf(":") - 1);
-        if (null != label && null != text && text.equals(advertiserName)) {
+    public Boolean checkAdvertiser(AndroidDriver androidDriver, String advertiserName) {
+        WebElement label = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/label");
+        String text = label.getText();
+        if (null != label && null != text && text.startsWith(advertiserName)) {
             //表示广告筛选成功
+            return true;
         } else {
             backToMain(androidDriver);
+            return false;
         }
     }
 
-
-
-    public WebElement getElementById(AndroidDriver androidDriver, String id) {
+    public WebElement getElementByType(AndroidDriver androidDriver, String type, String typeInfo) {
         WebElement element = null;
         try {
-            List<WebElement> elements = androidDriver.findElementsById(id);
-            if (elements != null && elements.size() > 0) {
-                element = elements.get(0);
+            if (type.equals(FIND_ELEMENT_TYPE_ID)) {
+                element = androidDriver.findElementById(typeInfo);
+            }
+            if (type.equals(FIND_ELEMENT_TYPE_CLASS)) {
+                element = androidDriver.findElementByClassName(typeInfo);
+            }
+            if (type.equals(FIND_ELEMENT_TYPE_XPATH)) {
+                element = androidDriver.findElementByXPath(typeInfo);
             }
         } catch (Exception e) {
-            System.out.println("元素ID:" + id + "不存在");
-        }
-
-        return element;
-    }
-
-    public WebElement getElementByClass(AndroidDriver androidDriver, String className) {
-        WebElement element = null;
-        List<WebElement> elements = androidDriver.findElementsByClassName(className);
-        if (elements != null && elements.size() > 0) {
-            element = elements.get(0);
-        }
-        return element;
-    }
-
-    public WebElement getElementByXpath(AndroidDriver androidDriver, String xpath) {
-        WebElement element = null;
-        List<WebElement> elements = androidDriver.findElementsByXPath(xpath);
-        if (elements != null && elements.size() > 0) {
-            element = elements.get(0);
+            log.error("元素不存在:findType:{},keywords:{}", type, typeInfo);
         }
         return element;
     }
 
     public void runTask(AndroidDriver androidDriver, AppiumTaskItem appiumTaskItem, WebElement loopElement) throws Exception {
         if (appiumTaskItem != null) {
-            System.out.println(new Gson().toJson(appiumTaskItem));
+            System.out.println("开始任务" + appiumTaskItem.getId() + ":" + new Gson().toJson(appiumTaskItem));
             if (appiumTaskItem.getWaitTime() != null && appiumTaskItem.getWaitTime() > 0) {
                 Thread.sleep(appiumTaskItem.getWaitTime());
             }
             if (appiumTaskItem.getLoopType() != null && appiumTaskItem.getLoopType().equals("noloop")) {
+                //非循环类型任务
                 if (appiumTaskItem.getFindType() != null) {
-                    WebElement element = null;
-                    if (appiumTaskItem.getFindType().equals("id")) {
-                        element = getElementById(androidDriver, appiumTaskItem.getFindKey());
-                    } else if (appiumTaskItem.getFindType().equals("class")) {
-                        element = getElementByClass(androidDriver, appiumTaskItem.getFindKey());
-                    } else if (appiumTaskItem.getFindType().equals("xpath")) {
-                        element = getElementByXpath(androidDriver, appiumTaskItem.getFindKey());
-                    } else if (appiumTaskItem.getFindType().equals("loop")) {
+                    WebElement element;
+                    //1:获取web元素
+                    if (appiumTaskItem.getFindType().equals("loop")) {
                         element = loopElement;
+                    } else {
+                        element = getElementByType(androidDriver, appiumTaskItem.getFindType(), appiumTaskItem.getFindKey());
                     }
                     if (element != null) {
                         if (appiumTaskItem.getTextEqualType() != null) {
@@ -563,6 +463,11 @@ public class AppiumUtil {
                                 if (element.getText() == null || element.getText().equals(appiumTaskItem.getTextEqualKey())) {
                                     return;
                                 }
+                            } else if (appiumTaskItem.getTextEqualType().equals("start")) {
+                                boolean check = checkAdvertiser(androidDriver, appiumTaskItem.getTextEqualKey());
+                                if (!check) {
+                                    return;
+                                }
                             }
                         }
                         if (appiumTaskItem.getClickType() != null) {
@@ -580,6 +485,7 @@ public class AppiumUtil {
                             }
                         }
                     } else {
+                        //必须执行
                         if (appiumTaskItem.getIsMust() != null && appiumTaskItem.getIsMust() == 1) {
                             if (appiumTaskItem.getLoopRate() != null && appiumTaskItem.getLoopRate() > 0) {
                                 Thread.sleep(appiumTaskItem.getLoopRate());
@@ -587,34 +493,22 @@ public class AppiumUtil {
                             runTask(androidDriver, appiumTaskItem, element);
                             return;
                         }
+                        //非必须执行情况下
                         if (appiumTaskItem.getClickType() != null && appiumTaskItem.getClickType().equals("point")) {
                             tapPoint(androidDriver, appiumTaskItem.getOffsiteX(), appiumTaskItem.getOffsiteY());
                         }
                     }
                 }
+                //屏幕滑动
                 if (appiumTaskItem.getSwapType() != null) {
-                    if (appiumTaskItem.getSwapType().equals("up")) {
-                        this.swipeToUp(androidDriver);
-                    } else if (appiumTaskItem.getSwapType().equals("down")) {
-                        this.swipeToDown(androidDriver);
-                    } else if (appiumTaskItem.getSwapType().equals("left")) {
-                        this.swipeToLeft(androidDriver);
-                    } else if (appiumTaskItem.getSwapType().equals("right")) {
-                        this.swipeToRight(androidDriver);
-                    }
+                    swipeByType(androidDriver, appiumTaskItem.getSwapType());
                 }
             } else if (appiumTaskItem.getLoopType() != null && appiumTaskItem.getLoopType().equals("loop")) {
+                //循环任务
                 while (isLoop) {
                     System.out.println("loop:" + isLoop);
                     if (appiumTaskItem.getFindType() != null) {
-                        List<WebElement> list = null;
-                        if (appiumTaskItem.getFindType().equals("id")) {
-                            list = androidDriver.findElementsById(appiumTaskItem.getFindKey());
-                        } else if (appiumTaskItem.getFindType().equals("class")) {
-                            list = androidDriver.findElementsByClassName(appiumTaskItem.getFindKey());
-                        } else if (appiumTaskItem.getFindType().equals("xpath")) {
-                            list = androidDriver.findElementsByXPath(appiumTaskItem.getFindKey());
-                        }
+                        List<WebElement> list = getElementsByType(androidDriver, appiumTaskItem.getFindType(), appiumTaskItem.getFindKey());
                         if (list != null && list.size() > 0) {
                             for (WebElement element : list) {
                                 if (!isLoop) {
@@ -633,15 +527,7 @@ public class AppiumUtil {
                         }
                     }
                     if (appiumTaskItem.getSwapType() != null) {
-                        if (appiumTaskItem.getSwapType().equals("up")) {
-                            this.swipeToUp(androidDriver);
-                        } else if (appiumTaskItem.getSwapType().equals("down")) {
-                            this.swipeToDown(androidDriver);
-                        } else if (appiumTaskItem.getSwapType().equals("left")) {
-                            this.swipeToLeft(androidDriver);
-                        } else if (appiumTaskItem.getSwapType().equals("right")) {
-                            this.swipeToRight(androidDriver);
-                        }
+                        swipeByType(androidDriver, appiumTaskItem.getSwapType());
                     }
                 }
 
@@ -649,6 +535,37 @@ public class AppiumUtil {
             if (appiumTaskItem.getIsClose() != null && appiumTaskItem.getIsClose() == 1) {
                 this.isLoop = false;
             }
+            System.out.println("结束任务" + appiumTaskItem.getId() + ":" + new Gson().toJson(appiumTaskItem));
+        }
+    }
+
+    private void swipeByType(AndroidDriver androidDriver, String type) {
+        if (type.equals(APP_SWIPE_TYPE_UP)) {
+            this.swipeToUp(androidDriver);
+        } else if (type.equals(APP_SWIPE_TYPE_DOWN)) {
+            this.swipeToDown(androidDriver);
+        } else if (type.equals(APP_SWIPE_TYPE_LEFT)) {
+            this.swipeToLeft(androidDriver);
+        } else if (type.equals(APP_SWIPE_TYPE_RIGHT)) {
+            this.swipeToRight(androidDriver);
+        }
+    }
+
+    private List<WebElement> getElementsByType(AndroidDriver androidDriver, String findType, String findKey) {
+        List<WebElement> elements = null;
+        try {
+            if (findType.equals(FIND_ELEMENT_TYPE_ID)) {
+                elements = androidDriver.findElementsById(findKey);
+            }
+            if (findType.equals(FIND_ELEMENT_TYPE_CLASS)) {
+                elements = androidDriver.findElementsByClassName(findKey);
+            }
+            if (findType.equals(FIND_ELEMENT_TYPE_XPATH)) {
+                elements = androidDriver.findElementsByXPath(findKey);
+            }
+        } catch (Exception e) {
+            log.error("元素不存在:findType:{},keywords:{}", findType, findKey);
         }
+        return elements;
     }
 }