|
@@ -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;
|
|
|
}
|
|
|
}
|