Bladeren bron

修改逻辑为通过activity判断

xuzuoyun 5 jaren geleden
bovenliggende
commit
b2e37cdc70
1 gewijzigde bestanden met toevoegingen van 330 en 2 verwijderingen
  1. 330 2
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/core/util/AppiumUtil.java

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

@@ -7,6 +7,7 @@ import io.appium.java_client.android.Activity;
 import io.appium.java_client.android.AndroidDriver;
 import io.appium.java_client.touch.WaitOptions;
 import io.appium.java_client.touch.offset.PointOption;
+import org.apache.xpath.operations.Bool;
 import org.openqa.selenium.Point;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.remote.DesiredCapabilities;
@@ -77,13 +78,340 @@ public class AppiumUtil {
         try {
 //            AndroidDriver androidDriver = appiumUtil.initAndroidDriver("http://39.106.184.70:4723/wd/hub", "183.131.157.66:10005", "com.smile.gifmaker", "com.yxcorp.login.userlogin.QuickLoginActivity");
             AndroidDriver androidDriver = appiumUtil.initAndroidDriver("http://39.106.184.70:4723/wd/hub", "183.131.157.66:10005", "com.smile.gifmaker", "com.yxcorp.gifshow.HomeActivity");
-            appiumUtil.loginKuaishou(androidDriver);
+//            appiumUtil.loginKuaishou(androidDriver);
+            appiumUtil.loginTask(androidDriver, null, null);
 //            appiumUtil.test(androidDriver);
         } catch (Exception e) {
-
             e.printStackTrace();
         }
+    }
+
+    public Boolean loginTask(AndroidDriver androidDriver, String settoken, String setmobile) throws Exception {
+        Thread.sleep(5000);
+        String token = settoken;
+        String mobile = setmobile;
+        String pkg = androidDriver.getCurrentPackage();
+        String activity = androidDriver.currentActivity();
+        System.out.println("当前包:" + pkg);
+        System.out.println("当前activity:" + activity);
+        Boolean isContinue = true;
+        if (pkg.equals("com.android.packageinstaller")) {
+            switch (activity) {
+                case ".permission.ui.GrantPermissionsActivity":
+                    WebElement permissionAllowBtn = getElementById(androidDriver, "com.android.packageinstaller:id/permission_allow_button");
+                    if (permissionAllowBtn != null) {
+                        permissionAllowBtn.click();
+                    }
+                    break;
+                case ".PackageInstallerActivity":
+                    WebElement okBtn = getElementById(androidDriver, "com.android.packageinstaller:id/ok_button");
+                    if (okBtn != null) {
+                        okBtn.click();
+                    }
+                    break;
+                case ".InstallAppProgress":
+                    WebElement centerText = getElementById(androidDriver, "com.android.packageinstaller:id/center_text");
+                    WebElement doneBtn = getElementById(androidDriver, "com.android.packageinstaller:id/done_button");
+
+                    if (centerText != null) {
+                        System.out.println(centerText.getText());
+                    }
+                    if (doneBtn != null) {
+                        doneBtn.click();
+                    }
+                    break;
+                default:
+                    isContinue = false;
+                    System.out.println("当前activity无法处理");
+                    break;
+            }
+        } else if (pkg.equals("com.smile.gifmaker")) {
+            WebElement positive = getElementById(androidDriver, "com.smile.gifmaker:id/positive");
+            if (positive != null) {
+                positive.click();
+            }
+
+            switch (activity) {
+                case "com.yxcorp.gifshow.webview.KwaiWebViewActivity":
+//                    WebElement leftTv = getElementById(androidDriver,"com.smile.gifmaker:id/left_tv");
+                    WebElement leftBtn1 = getElementById(androidDriver, "com.smile.gifmaker:id/left_btn");
+                    if (leftBtn1 != null) {
+                        leftBtn1.click();
+                    }
+//                    if (leftTv != null){
+//                        leftTv.click();
+//                    }
+                    break;
+                case "com.yxcorp.gifshow.HomeActivity":
+
+                    WebElement loginText = getElementById(androidDriver, "com.smile.gifmaker:id/login_text");
+                    WebElement leftText = getElementById(androidDriver, "com.smile.gifmaker:id/left_text");
+                    WebElement phoneLoginBtn = getElementById(androidDriver, "com.smile.gifmaker:id/phone_login_view");
+                    WebElement leftBtn = getElementById(androidDriver, "com.smile.gifmaker:id/left_btn");
+                    WebElement closeBtn = getElementById(androidDriver, "com.smile.gifmaker:id/close_btn");
+//                    WebElement qrcodeImage = getElementById(androidDriver,"com.smile.gifmaker:id/qr_code_image");
+//                    if(qrcodeImage != null){
+//                        qrcodeImage.click();
+//                        break;
+//                    }
+                    if (closeBtn != null) {
+                        closeBtn.click();
+                        break;
+                    }
+                    if (loginText != null) {
+                        loginText.click();
+                        break;
+                    }
+                    if (leftText != null) {
+                        leftText.click();
+                        break;
+                    }
+                    if (phoneLoginBtn != null) {
+                        phoneLoginBtn.click();
+                        break;
+                    }
+                    if (leftBtn != null) {
+                        leftBtn.click();
+                        Thread.sleep(5000);
+                        WebElement tabAvatar = getElementById(androidDriver, "com.smile.gifmaker:id/tab_avatar");
+                        if (tabAvatar != null) {
+                            tabAvatar.click();
+                        } else {
+                            Thread.sleep(3000);
+                            tapPoint(androidDriver, 650, 1230);
+                            Thread.sleep(3000);
+                            tapPoint(androidDriver, 650, 1230);
+                            Thread.sleep(3000);
+//                            WebElement qrCodeImage = getElementById(androidDriver,"com.smile.gifmaker:id/qr_code_image");
+//                            if(qrCodeImage != null){
+//
+//                            }
+                            tapPoint(androidDriver, 650, 400);
+                        }
+                    }
+                    break;
+                case "com.yxcorp.gifshow.profile.activity.MyProfileActivity":
+//                    WebElement qrCodeImage = getElementById(androidDriver,"com.smile.gifmaker:id/qr_code_image");
+                    WebElement loadingTitle = getElementById(androidDriver, "com.smile.gifmaker:id/loading_title");
+                    if (loadingTitle != null) {
+                        System.out.println(loadingTitle.getText());
+                    }
+                    tapPoint(androidDriver, 650, 400);
+//                    if(qrCodeImage != null){
+//
+//                    }
+                    break;
+                case "com.yxcorp.plugin.qrcode.MyQRCodeActivity":
+                    WebElement kwaiId = getElementById(androidDriver, "com.smile.gifmaker:id/kwai_id");
+                    if (kwaiId != null) {
+                        System.out.println(kwaiId.getText());
+                        isContinue = false;
+                    }
+                    break;
+                case "com.yxcorp.gifshow.activity.BrowseSettingsActivity":
+                    //com.smile.gifmaker:id/browse_setting_new_btn 开启大屏模式  关闭大屏模式
+                    //com.smile.gifmaker:id/left_btn 返回
+                    break;
+                case "com.yxcorp.login.userlogin.LoginActivity":
+                    WebElement loginTitleTv = getElementById(androidDriver, "com.smile.gifmaker:id/login_title_tv");
+                    WebElement loginNameEt = getElementById(androidDriver, "com.smile.gifmaker:id/login_name_et");
+                    WebElement nextView = getElementById(androidDriver, "com.smile.gifmaker:id/next_view");
+//                    WebElement forgetPsdBtn = getElementById(androidDriver,"com.smile.gifmaker:id/forget_psd_btn");
 
+                    if (loginTitleTv != null) {
+                        System.out.println(loginTitleTv.getText());
+                        if (loginTitleTv.getText().equals("输入密码")) {
+                            WebElement forgetPsdBtn = getElementById(androidDriver, "com.smile.gifmaker:id/forget_psd_btn");
+                            if (forgetPsdBtn != null) {
+                                forgetPsdBtn.click();
+                            }
+                        }
+                    }
+                    if (loginNameEt != null) {
+                        token = KuaimiUtil.kuaimiLogin();
+                        mobile = KuaimiUtil.getMobile(token, "2307");
+                        loginNameEt.sendKeys(mobile);
+                        Thread.sleep(5000);
+                        nextView.click();
+                    }
+//                    if(forgetPsdBtn != null){
+//                        forgetPsdBtn.click();
+//                    }
+//                    if(mobile != null){
+//                        KuaimiUtil.cancelRecv(token,"2307",mobile);
+//                    }
+                    break;
+                case "com.yxcorp.login.userlogin.RetrievePasswordActivity":
+                    WebElement nameEt = getElementById(androidDriver, "com.smile.gifmaker:id/name_et");
+                    if (nameEt != null) {
+//                        token = KuaimiUtil.kuaimiLogin();
+//                        mobile = KuaimiUtil.getMobile(token, "2307");
+//                        nameEt.sendKeys(mobile);
+                        Thread.sleep(5000);
+                        WebElement verifyTv = getElementById(androidDriver, "com.smile.gifmaker:id/verify_tv");
+                        if (verifyTv != null) {
+                            verifyTv.click();
+                            int i = 0;
+                            String msg = null;
+                            while (i < 20) {
+                                i++;
+                                if (msg != null) {
+                                    continue;
+                                }
+                                try {
+                                    msg = KuaimiUtil.getMessage(token, "2307", mobile);
+                                } catch (Exception e) {
+                                    System.out.println("等待" + mobile + "短信验证码");
+                                    Thread.sleep(5000);
+                                }
+                            }
+                            if (msg != null) {
+                                WebElement verifyEt = getElementById(androidDriver, "com.smile.gifmaker:id/verify_et");
+                                if (verifyEt != null) {
+                                    verifyEt.sendKeys(msg);
+                                    Thread.sleep(5000);
+                                    WebElement confirmBtn = getElementById(androidDriver, "com.smile.gifmaker:id/confirm_btn");
+                                    if (confirmBtn != null) {
+                                        confirmBtn.click();
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    break;
+                case "com.yxcorp.login.userlogin.ResetSelectedAccountPasswordActivity":
+                    WebElement confirmBtn = getElementById(androidDriver, "com.smile.gifmaker:id/confirm_btn");
+                    WebElement loginPsdEt = getElementById(androidDriver, "com.smile.gifmaker:id/login_psd_et");
+                    if (loginPsdEt != null) {
+                        loginPsdEt.sendKeys("a123456");
+                        Thread.sleep(5000);
+                        if (confirmBtn != null) {
+                            confirmBtn.click();
+                        }
+                    }
+                    break;
+                case "com.yxcorp.login.userlogin.MultiLoginAccountSelectActivity":
+                    WebElement iconOne = getElementById(androidDriver, "com.smile.gifmaker:id/icon_one");
+                    if (iconOne != null) {
+                        iconOne.click();
+                    }
+                    break;
+                case "com.yxcorp.login.userlogin.RegisterUserInfoSettingActivity":
+                    //com.smile.gifmaker:id/right_btn
+                    WebElement rightBtn = getElementById(androidDriver, "com.smile.gifmaker:id/right_btn");
+                    if (rightBtn != null) {
+                        rightBtn.click();
+                    }
+                    break;
+                case "com.yxcorp.gifshow.activity.InterestTagActivity":
+                    WebElement closeIv = getElementById(androidDriver, "com.smile.gifmaker:id/close_iv");
+                    if (closeIv != null) {
+                        closeIv.click();
+                    }
+                    break;
+                case "com.yxcorp.login.userlogin.QuickLoginActivity":
+                    WebElement phoneLoginView = getElementById(androidDriver, "com.smile.gifmaker:id/phone_login_view");
+                    if (phoneLoginView != null) {
+                        phoneLoginView.click();
+                    }
+                    break;
+                case "com.yxcorp.login.userlogin.FullScreenLoginActivity":
+                    WebElement phoneOneKeyLoginBtn = getElementById(androidDriver, "com.smile.gifmaker:id/phone_one_key_login_btn");
+                    if (phoneOneKeyLoginBtn != null) {
+                        phoneOneKeyLoginBtn.click();
+                    }
+                    break;
+                case "com.yxcorp.login.userlogin.CaptchaCodeLoginActivity":
+                    WebElement captchaEt = getElementById(androidDriver, "com.smile.gifmaker:id/captcha_et");
+                    if (captchaEt != null) {
+                        int i = 0;
+                        String msg = null;
+                        while (i < 20) {
+                            i++;
+                            if (msg != null) {
+                                continue;
+                            }
+                            try {
+                                msg = KuaimiUtil.getMessage(token, "2307", mobile);
+                            } catch (Exception e) {
+                                System.out.println("等待" + mobile + "短信验证码");
+                                Thread.sleep(5000);
+                            }
+                        }
+                        if (msg != null) {
+                            captchaEt.sendKeys(msg);
+                            Thread.sleep(5000);
+                            WebElement captchaFinish = getElementById(androidDriver, "com.smile.gifmaker:id/captcha_finish");
+                            if (captchaFinish != null) {
+                                captchaFinish.click();
+                            }
+                        }
+                    }
+                    //com.smile.gifmaker:id/captcha_et
+                    //com.smile.gifmaker:id/captcha_finish
+                    //com.smile.gifmaker:id/captcha_title  	验证码已发送至+86 18349780352
+                    break;
+                case "com.yxcorp.login.userlogin.PhoneLoginV2Activity":
+                    WebElement phoneEt = getElementById(androidDriver, "com.smile.gifmaker:id/phone_et");
+                    if (phoneEt != null) {
+                        token = KuaimiUtil.kuaimiLogin();
+                        mobile = KuaimiUtil.getMobile(token, "2307");
+                        phoneEt.sendKeys(mobile);
+                        Thread.sleep(5000);
+                        WebElement fetchCodeTv = getElementById(androidDriver, "com.smile.gifmaker:id/fetch_code_tv");
+                        if (fetchCodeTv != null) {
+                            fetchCodeTv.click();
+                            int i = 0;
+                            String msg = null;
+                            while (i < 20) {
+                                i++;
+                                if (msg != null) {
+                                    continue;
+                                }
+                                try {
+                                    msg = KuaimiUtil.getMessage(token, "2307", mobile);
+                                } catch (Exception e) {
+                                    System.out.println("等待" + mobile + "短信验证码");
+                                    Thread.sleep(5000);
+                                }
+                            }
+                            if (msg != null) {
+                                WebElement captchaCodeEt = getElementById(androidDriver, "com.smile.gifmaker:id/captcha_code_et");
+                                if (captchaCodeEt != null) {
+                                    captchaCodeEt.sendKeys(msg);
+                                    Thread.sleep(5000);
+                                    WebElement cfmBtn = getElementById(androidDriver, "com.smile.gifmaker:id/confirm_btn");
+                                    if (cfmBtn != null) {
+                                        cfmBtn.click();
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    break;
+                default:
+                    isContinue = false;
+                    System.out.println("当前activity无法处理");
+                    break;
+            }
+        } else if (pkg.equals("cn.com.longene.www.myapplication")) {
+            switch (activity) {
+                case ".MainActivity":
+                    isContinue = false;
+                    System.out.println("快手已崩溃");
+                    break;
+                default:
+                    isContinue = false;
+                    System.out.println("当前activity无法处理");
+                    break;
+            }
+        } else {
+            System.out.println("当前包为非操作包:" + pkg);
+        }
+        if (isContinue) {
+            isContinue = loginTask(androidDriver, token, mobile);
+        }
+        return isContinue;
     }
 
     public void test(AndroidDriver androidDriver) throws Exception {