//package cn.com.ctop.crawler.modules.test;
//
//import cn.com.ctop.crawler.modules.core.util.AppiumUtil;
//import com.google.gson.Gson;
//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.Data;
//import org.openqa.selenium.Point;
//import org.openqa.selenium.WebElement;
//import org.openqa.selenium.remote.DesiredCapabilities;
//
//import java.net.MalformedURLException;
//import java.net.URL;
//import java.time.Duration;
//import java.util.ArrayList;
//import java.util.List;
//
//@Data
//public class AppiumTest {
//    private Boolean isLoop = true;
//    private Duration duration = Duration.ofSeconds(1);
//
//
//
//    //    "http://39.106.184.70:4723/wd/hub"
//    public AndroidDriver initAndroidDriver(String serverUrl, String deviceName, String appPackage, String appActivity) throws Exception {
//        return new AndroidDriver(new URL(serverUrl), initCapabilities(deviceName, appPackage, appActivity));
//    }
//
//    public DesiredCapabilities initCapabilities(String deviceName, String appPackage, String appActivity) {
//        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
//        //指定测试设备的名称
////        desiredCapabilities.setCapability("deviceName", "127.0.0.1:62001");
////        desiredCapabilities.setCapability("deviceName", "183.131.157.66:10005");
//        desiredCapabilities.setCapability("deviceName", deviceName);
//        //添加操作系统配置
//        desiredCapabilities.setCapability("platformName", "Android");
//        //添加操作系统版本设置
////        desiredCapabilities.setCapability("platformVersion", "4.4.2");
//        //指定想要测试应用的包名
////        desiredCapabilities.setCapability("appPackage", "com.smile.gifmaker");
//        desiredCapabilities.setCapability("appPackage", appPackage);
//        desiredCapabilities.setCapability("noReset", true);
//        desiredCapabilities.setCapability("unicodeKeyboard", true);
//        desiredCapabilities.setCapability("resetKeyboard", true);
//        //指定想要测试应用的入口activity
////        desiredCapabilities.setCapability("appActivity", "com.yxcorp.gifshow.HomeActivity");
//        desiredCapabilities.setCapability("appActivity", appActivity);
//        return desiredCapabilities;
//    }
//
//    public List<AppiumTask> initTask() {
//        List<AppiumTask> list = new ArrayList<>();
//        AppiumTask appiumTask1 = new AppiumTask();
//        appiumTask1.setFindType("class");
//        appiumTask1.setFindKey("android.widget.CheckedTextView");
//        appiumTask1.setClickType("element");
//        appiumTask1.setLoopType("noloop");
//        appiumTask1.setIsMust(true);
//        appiumTask1.setWaitTime(3000L);
//
//        AppiumTask appiumTask2 = new AppiumTask();
//        appiumTask2.setFindType("xpath");
//        appiumTask2.setFindKey("//android.view.View[@content-desc=\"发现\"]");
//        appiumTask2.setClickType("element");
//        appiumTask2.setLoopType("noloop");
//        appiumTask2.setIsMust(true);
//        appiumTask2.setWaitTime(3000L);
//
//        AppiumTask appiumTask3 = new AppiumTask();
//        appiumTask3.setFindType("id");
//        appiumTask3.setFindKey("com.smile.gifmaker:id/subject");
//        appiumTask3.setClickType("no");
//        appiumTask3.setLoopType("loop");
//        appiumTask3.setIsMust(true);
//        appiumTask3.setSwapType("up");
//
//        AppiumTask appiumTask31 = new AppiumTask();
//        appiumTask31.setFindType("loop");
//        appiumTask31.setClickType("point");
//        appiumTask31.setLoopType("noloop");
//        appiumTask31.setIsMust(false);
//        appiumTask31.setTextEqualType("eq");
//        appiumTask31.setTextEqualKey("广告");
//        appiumTask31.setOffsiteX(-100);
//        appiumTask31.setOffsiteY(-100);
//        appiumTask31.setWaitTime(2000L);
//
////        AppiumTask appiumTask32 = new AppiumTask();
////        appiumTask32.setFindType("loop");
////        appiumTask32.setClickType("no");
////        appiumTask32.setLoopType("noloop");
////        appiumTask32.setIsMust(false);
////        appiumTask32.setTextEqualType("neq");
////        appiumTask32.setTextEqualKey("广告");
////
////        AppiumTask appiumTask321 = new AppiumTask();
////        appiumTask321.setFindType("id");
////        appiumTask321.setFindKey("com.smile.gifmaker:id/back_btn");
////        appiumTask321.setClickType("element");
////        appiumTask321.setLoopType("noloop");
////        appiumTask321.setIsMust(false);
//
//        AppiumTask appiumTask311 = new AppiumTask();
//        appiumTask311.setFindType("loop");
//        appiumTask311.setClickType("no");
//        appiumTask311.setLoopType("noloop");
//        appiumTask311.setIsMust(true);
//        appiumTask311.setSwapType("up");
//
//        AppiumTask appiumTask312 = new AppiumTask();
//        appiumTask312.setFindType("id");
//        appiumTask312.setWaitTime(5000L);
//        appiumTask312.setFindKey("com.smile.gifmaker:id/ad_simplified_style_enhanced_ad_install_text");
//        appiumTask312.setClickType("element");
//        appiumTask312.setLoopType("noloop");
//        appiumTask312.setIsMust(false);
//
//
//        AppiumTask appiumTask3121 = new AppiumTask();
//        appiumTask3121.setFindType("id");
//        appiumTask3121.setFindKey("com.android.packageinstaller:id/ok_button");
//        appiumTask3121.setClickType("element");
//        appiumTask3121.setLoopType("noloop");
//        appiumTask3121.setIsMust(true);
//        appiumTask3121.setLoopRate(3000L);
//
//        AppiumTask appiumTask3122 = new AppiumTask();
//        appiumTask3122.setFindType("id");
//        appiumTask3122.setFindKey("com.android.packageinstaller:id/launch_button");
//        appiumTask3122.setClickType("element");
//        appiumTask3122.setLoopType("noloop");
//        appiumTask3122.setIsMust(true);
//        appiumTask3121.setLoopRate(3000L);
//
//        AppiumTask appiumTask3124 = new AppiumTask();
//        appiumTask3124.setFindType("id");
//        appiumTask3124.setFindKey("com.android.packageinstaller:id/permission_allow_button");
//        appiumTask3124.setClickType("element");
//        appiumTask3124.setLoopType("noloop");
//        appiumTask3124.setIsMust(false);
//        appiumTask3124.setWaitTime(3000L);
//
//        AppiumTask appiumTask3125 = new AppiumTask();
//        appiumTask3125.setFindType("id");
//        appiumTask3125.setFindKey("com.android.packageinstaller:id/permission_allow_button");
//        appiumTask3125.setClickType("element");
//        appiumTask3125.setLoopType("noloop");
//        appiumTask3125.setIsMust(false);
//        appiumTask3125.setWaitTime(3000L);
//
//        AppiumTask appiumTask3126 = new AppiumTask();
//        appiumTask3126.setFindType("id");
//        appiumTask3126.setFindKey("com.android.packageinstaller:id/permission_allow_button");
//        appiumTask3126.setClickType("element");
//        appiumTask3126.setLoopType("noloop");
//        appiumTask3126.setIsMust(false);
//        appiumTask3126.setWaitTime(3000L);
//
//        AppiumTask appiumTask3127 = new AppiumTask();
//        appiumTask3127.setFindType("id");
//        appiumTask3127.setFindKey("com.android.packageinstaller:id/permission_allow_button");
//        appiumTask3127.setClickType("element");
//        appiumTask3127.setLoopType("noloop");
//        appiumTask3127.setIsMust(false);
//        appiumTask3127.setWaitTime(3000L);
//        appiumTask3127.setIsClose(true);
//
//        List<AppiumTask> subList4 = new ArrayList<>();
//        subList4.add(appiumTask3121);
//        subList4.add(appiumTask3122);
////        subList4.add(appiumTask3123);
//        subList4.add(appiumTask3124);
//        subList4.add(appiumTask3125);
//        subList4.add(appiumTask3126);
//        subList4.add(appiumTask3127);
//        appiumTask312.setSubTask(subList4);
//
//        List<AppiumTask> subList3 = new ArrayList<>();
//        subList3.add(appiumTask311);
//        subList3.add(appiumTask312);
//        appiumTask31.setSubTask(subList3);
//
////        List<AppiumTask> subList2 = new ArrayList<>();
////        subList2.add(appiumTask321);
////        appiumTask32.setSubTask(subList2);
//
//        List<AppiumTask> subList1 = new ArrayList<>();
//        subList1.add(appiumTask31);
////        subList1.add(appiumTask32);
//        appiumTask3.setSubTask(subList1);
//
//        list.add(appiumTask1);
//        list.add(appiumTask2);
//        list.add(appiumTask3);
//        return list;
//    }
//
//    public void t() {
//        try {
////            AndroidDriver androidDriver = initAndroidDriver("http://39.106.184.70:4723/wd/hub","183.131.157.66:10005","com.smile.gifmaker","com.yxcorp.gifshow.HomeActivity");
//            AndroidDriver androidDriver = initAndroidDriver("http://39.106.184.70:4723/wd/hub", "183.131.157.66:10005", "com.smile.gifmaker", "com.yxcorp.gifshow.HomeActivity");
//
//            List<AppiumTask> list = initTask();
//            for (AppiumTask task : list) {
//                runTask(androidDriver, task, null);
//            }
//            androidDriver.quit();
//            System.out.println("task success");
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//
//    }
//
//    public void runTask(AndroidDriver androidDriver, AppiumTask appiumTask, WebElement loopElement) throws Exception {
//        if (appiumTask != null) {
//            System.out.println(new Gson().toJson(appiumTask));
//            if (appiumTask.getWaitTime() != null && appiumTask.getWaitTime() > 0) {
//                Thread.sleep(appiumTask.getWaitTime());
//            }
//            if (appiumTask.getLoopType() != null && "noloop".equals(appiumTask.getLoopType())) {
//                if (appiumTask.getFindType() != null) {
//                    WebElement element = null;
//                    if ("id".equals(appiumTask.getFindType())) {
//                        element = AppiumUtil.getElementById(androidDriver, appiumTask.getFindKey());
//                    } else if ("class".equals(appiumTask.getFindType())) {
//                        element = getElementByClass(androidDriver, appiumTask.getFindKey());
//                    } else if ("xpath".equals(appiumTask.getFindType())) {
//                        element = getElementByXpath(androidDriver, appiumTask.getFindKey());
//                    } else if ("loop".equals(appiumTask.getFindType())) {
//                        element = loopElement;
//                    }
//                    if (element != null) {
//                        if (appiumTask.getTextEqualType() != null) {
//                            if ("eq".equals(appiumTask.getTextEqualType())) {
//                                if (!element.getText().equals(appiumTask.getTextEqualKey())) {
//                                    return;
//                                }
//                            } else if ("neq".equals(appiumTask.getTextEqualType())) {
//                                if (element.getText() == null || element.getText().equals(appiumTask.getTextEqualKey())) {
//                                    return;
//                                }
//                            }
//                        }
//                        if (appiumTask.getClickType() != null) {
//                            if ("element".equals(appiumTask.getClickType())) {
//                                element.click();
//                            } else if ("point".equals(appiumTask.getClickType())) {
//                                Point point = element.getLocation();
//                                tapPoint(androidDriver, point.getX() + appiumTask.getOffsiteX(), point.getY() + appiumTask.getOffsiteY());
//                            }
//                        }
//                        List<AppiumTask> subTask = appiumTask.getSubTask();
//                        if (subTask != null && subTask.size() > 0) {
//                            for (AppiumTask task : subTask) {
//                                runTask(androidDriver, task, element);
//                            }
//                        }
//                    } else {
//                        if (appiumTask.getIsMust() != null && appiumTask.getIsMust() == true) {
//                            if (appiumTask.getLoopRate() != null && appiumTask.getLoopRate() > 0) {
//                                Thread.sleep(appiumTask.getLoopRate());
//                            }
//                            runTask(androidDriver, appiumTask, element);
//                            return;
//                        }
//                        if (appiumTask.getClickType() != null && "point".equals(appiumTask.getClickType())) {
//                            tapPoint(androidDriver, appiumTask.getOffsiteX(), appiumTask.getOffsiteY());
//                        }
//                    }
//                }
//                if (appiumTask.getSwapType() != null) {
//                    if ("up".equals(appiumTask.getSwapType())) {
//                        this.swipeToUp(androidDriver);
//                    } else if ("down".equals(appiumTask.getSwapType())) {
//                        this.swipeToDown(androidDriver);
//                    } else if ("left".equals(appiumTask.getSwapType())) {
//                        this.swipeToLeft(androidDriver);
//                    } else if ("right".equals(appiumTask.getSwapType())) {
//                        this.swipeToRight(androidDriver);
//                    }
//                }
//            } else if (appiumTask.getLoopType() != null && "loop".equals(appiumTask.getLoopType())) {
//                while (isLoop) {
//                    System.out.println("loop:" + isLoop);
//                    if (appiumTask.getFindType() != null) {
//                        List<WebElement> list = null;
//                        if ("id".equals(appiumTask.getFindType())) {
//                            list = androidDriver.findElementsById(appiumTask.getFindKey());
//                        } else if ("class".equals(appiumTask.getFindType())) {
//                            list = androidDriver.findElementsByClassName(appiumTask.getFindKey());
//                        } else if ("xpath".equals(appiumTask.getFindType())) {
//                            list = androidDriver.findElementsByXPath(appiumTask.getFindKey());
//                        }
//                        if (list != null && list.size() > 0) {
//                            for (WebElement element : list) {
//                                if (!isLoop) {
//                                    break;
//                                }
//                                if (appiumTask.getLoopRate() != null && appiumTask.getLoopRate() > 0) {
//                                    Thread.sleep(appiumTask.getLoopRate());
//                                }
//                                List<AppiumTask> subTask = appiumTask.getSubTask();
//                                if (subTask != null && subTask.size() > 0) {
//                                    for (AppiumTask task : subTask) {
//                                        runTask(androidDriver, task, element);
//                                    }
//                                }
//                            }
//                        }
//                    }
//                    if (appiumTask.getSwapType() != null) {
//                        if ("up".equals(appiumTask.getSwapType())) {
//                            this.swipeToUp(androidDriver);
//                        } else if ("down".equals(appiumTask.getSwapType())) {
//                            this.swipeToDown(androidDriver);
//                        } else if ("left".equals(appiumTask.getSwapType())) {
//                            this.swipeToLeft(androidDriver);
//                        } else if ("right".equals(appiumTask.getSwapType())) {
//                            this.swipeToRight(androidDriver);
//                        }
//                    }
//                }
//
//            }
//            if (appiumTask.getIsClose() != null && appiumTask.getIsClose()) {
//                this.isLoop = false;
//            }
//        }
//    }
//
//    public static void main(String[] args) throws MalformedURLException, InterruptedException {
//        // TODO Auto-generated method stub
//        //1.添加配置，创建DesiredCapabilities对象
//        AppiumTest appiumTest = new AppiumTest();
//        appiumTest.t();
//        //2.创建驱动...URL是appium的固定地址；指定appium通讯的地址，将相对应的配置传入到驱动里边
//
////        com.longene.lglocation/.activity.MainActivity
////        com.longene.setcardproperty/.MainActivity
//        //打开地图后点击同意继续
////        androidDriver.findElementById("com.smile.gifmaker:id/button").click();
//        //点击进入地图
//        //加线程等待
////        Thread.sleep(5000);
////        while (true){
////            try {
////                AndroidDriver androidDriver = appiumTest.initAndroidDriver("http://39.106.184.70:4723/wd/hub","","","");
////
////                List<WebElement> list = androidDriver.findElementsByClassName("android.widget.CheckedTextView");
////                if(list != null && list.size() > 0){
////                    list.get(0).click();
////                }
////
////                List<WebElement> list1 = androidDriver.findElementsByXPath("//android.view.View[@content-desc=\"发现\"]");
////                if(list1 != null && list1.size() > 0){
////                    list1.get(0).click();
////                }
////                appiumTest.swipeToUp(androidDriver);
////
////                Thread.sleep(2000);
////                List<WebElement> webElementList = androidDriver.findElementsById("com.smile.gifmaker:id/subject");
////                if(webElementList != null && webElementList.size() > 0){
////                    for(WebElement element : webElementList){
////                        if(element.getText().equals("广告")){
////                            Point point = element.getLocation();
////                            appiumTest.tapPoint(androidDriver,point.getX()-100,point.getY()-100);
//////                            Thread.sleep(1000);
//////                            androidDriver.findElementById("com.smile.gifmaker:id/like_button").click();
//////                            Thread.sleep(1000);
////                            appiumTest.swipeToUp(androidDriver);
////                            Thread.sleep(5000);
//////                            String text = androidDriver.findElementById("com.smile.gifmaker:id/label").getText();
//////                            System.out.println(text);
//////                            String title = text.split(":")[1].trim();
////
//////                            if(title.startsWith("超级有趣的小游戏")){
//////                                Thread.sleep(1000);
//////                                androidDriver.findElementById("com.smile.gifmaker:id/editor_holder_text").click();
//////                                Thread.sleep(1000);
//////                                androidDriver.findElementById("com.smile.gifmaker:id/editor").sendKeys("这个广告看着很吸引人！");
//////                                Thread.sleep(1000);
//////                                androidDriver.findElementById("com.smile.gifmaker:id/finish_button").click();
////                                Thread.sleep(5000);
////                                List<WebElement> webElement = androidDriver.findElementsById("com.smile.gifmaker:id/ad_simplified_style_enhanced_ad_install_text");
////                                if (webElement != null && webElement.size() > 0){
////                                    webElement.get(0).click();
////                                    while (true){
////                                    Thread.sleep(5000);
////                                        List<WebElement> element1 = androidDriver.findElementsById("com.android.packageinstaller:id/ok_button");
////                                        if(element1 != null && element1.size() > 0){
////                                            System.out.println(element1.get(0).getText());
////                                            element1.get(0).click();
////                                            break;
////                                        }
////                                    }
////                                    while (true){
////                                        Thread.sleep(5000);
////                                        List<WebElement> element1 = androidDriver.findElementsById("com.android.packageinstaller:id/launch_button");
////                                        if(element1 != null && element1.size() > 0){
////                                            System.out.println(element1.get(0).getText());
////                                            element1.get(0).click();
////                                            break;
////                                        }
////                                    }
////                                    while (true){
////                                        Thread.sleep(5000);
////                                        List<WebElement> element1 = androidDriver.findElementsById("com.android.packageinstaller:id/permission_allow_button");
////                                        if (element1 != null && element1.size() > 0){
////                                            element1.get(0).click();
////                                        }else {
////                                            break;
////                                        }
////                                    }
////                                    Thread.sleep(5000);
////                                    List<WebElement> element1 = androidDriver.findElementsById("com.game.matrix_pixelpaint:id/nr");
////                                    if(element1 != null && element1.size() > 0){
////                                        element1.get(0).click();
////                                    }
////                                    for(int i = 0; i < 10;i++){
////                                        Thread.sleep(2000);
////                                        appiumTest.swipeToUp(androidDriver);
////                                    }
////                                    System.out.println("操作完成");
////                                }else {
////                                    androidDriver.findElementById("com.smile.gifmaker:id/back_btn").click();
////                                }
////                                //按钮  com.smile.gifmaker:id/ad_simplified_style_enhanced_ad_install_text
////                                //转化  com.smile.gifmaker:id/ad_simplified_style_enhanced_app_name_text
////                                //喜欢  com.smile.gifmaker:id/like_button
////                                //举报  com.smile.gifmaker:id/inform_button
////                                //分享  com.smile.gifmaker:id/forward_button
////                                //头像  com.smile.gifmaker:id/avatar
////                                //返回  com.smile.gifmaker:id/back_btn
////                                //昵称标题 com.smile.gifmaker:id/label
////                                //评论数 com.smile.gifmaker:id/more_comments
////                                //点赞数 com.smile.gifmaker:id/number_like
////                                //播放数 com.smile.gifmaker:id/number_review
////                                //新增评论 com.smile.gifmaker:id/text_top
////                                //评论内容 com.smile.gifmaker:id/editor
////                                //评论提交 com.smile.gifmaker:id/finish_button
////
//////                            }else {
//////                                System.out.println(title);
//////                                androidDriver.findElementById("com.smile.gifmaker:id/back_btn").click();
//////                            }
////
////
//////                            Thread.sleep(5000);
//////                            androidDriver.findElementById("com.smile.gifmaker:id/back_btn").click();
//////                            System.out.println("广告坐标为："+point.getX()+","+point.getY());
////                        }
////                    }
////                }
////            }catch (Exception e){
////                e.printStackTrace();
////            }
////
////        }
//
////        androidDriver.findElementById("com.smile.gifmaker:id/player_cover").click();
////        Thread.sleep(5000);
////        //退出
////        androidDriver.quit();
//    }
//}
