zoukankan      html  css  js  c++  java
  • java+appium+安卓模拟器实现app自动化Demo

    网上有比较多相关教程,自己写一遍,加深下印象。

    环境搭建

    据说,很多人都被繁琐的环境搭建给吓到了。

    是的,确实,繁琐。

    node.js

    网址

    cmd输入node -v,出现下图说明成功。

    JDK

    网址

    百度一下“配置Java”

    cmd输入java -version,出现下图说明成功。

    Android SDK

    网址

    百度一下"配置Android SDK环境变量"

    cmd输入adb,出现下图说明成功。

    Appium Desktop

    网址1 / 网址2

    Maven

    网址

    百度一下“maven环境配置”

    cmd输入mvn -version,出现下图说明成功。

    IntelliJ IDEA

    网址

    安卓模拟器

    网址

    把Android SDK目录下platform-tools的adb.exe拷贝

    打开Noxin目录

    粘贴替换adb.exe

    打开模拟器

    cmd输入adb connect 127.0.0.1:62001

    再输入adb devices

    有道计算器

    网址

    下载后,apk文件存放在某目录下即可。

    将apk文件直接拖入安卓模拟器中。

    至此,环境搭建完毕,共安装了8个程序。

    实现步骤

    打开IntelliJ

    创建maven项目


    点击ok后,复制下面代码到pom.xm中

      <dependencies>
            <dependency>
                <groupId>io.appium</groupId>
                <artifactId>java-client</artifactId>
                <version>4.1.2</version>
            </dependency>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.14.2</version>
            </dependency>
        </dependencies>
    



    复制粘贴下面代码

    import org.testng.annotations.Test;
    import org.testng.annotations.BeforeClass;
    import org.testng.annotations.AfterClass;
    
    import io.appium.java_client.AppiumDriver;
    import io.appium.java_client.android.AndroidDriver;
    
    import java.net.URL;
    
    import org.openqa.selenium.remote.CapabilityType;
    import org.openqa.selenium.remote.DesiredCapabilities;
    
    public class AppDemo {
        private AppiumDriver driver;
    
        @BeforeClass
        public void setup() throws Exception {
            DesiredCapabilities cap = new DesiredCapabilities();
            cap.setCapability(CapabilityType.BROWSER_NAME, "");
            cap.setCapability("platformName", "Android"); //指定测试平台
            cap.setCapability("deviceName", "127.0.0.1:62001"); //指定测试机的ID,通过adb命令`adb devices`获取
            cap.setCapability("platformVersion", "5.1.1");
    
            //将上面获取到的包名和Activity名设置为值
            cap.setCapability("appPackage", "com.youdao.calculator");
            cap.setCapability("appActivity", "com.youdao.calculator.activities.MainActivity");
    
    //        //A new session could not be created的解决方法
    //        cap.setCapability("appWaitActivity", "com.meizu.flyme.calculator.Calculator");
    //        //每次启动时覆盖session,否则第二次后运行会报错不能新建session
    //        cap.setCapability("sessionOverride", true);
    
            driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
        }
    
        @Test
        public void plus() throws Exception {
            Thread.sleep(3000);
            int width = driver.manage().window().getSize().width;
            int height = driver.manage().window().getSize().height;
            int x0 = (int)(width * 0.8);  // 起始x坐标
            int x1 = (int)(height * 0.2);  // 终止x坐标
            int y = (int)(height * 0.5);  // y坐标
            for (int i=0; i<5; i++) {
                driver.swipe(x0, y, x1, y, 500);
                Thread.sleep(1000);
            }
    
            driver.findElementById("com.youdao.calculator:id/guide_button").click();
            for (int i=0; i<6; i++) {
                driver.findElementByXPath("//android.webkit.WebView[@text='Mathbot Editor']").click();
                Thread.sleep(1000);
            }
    
            String btn_xpath = "//*[@resource-id='com.youdao.calculator:id/view_pager_keyboard']/android.widget.GridView/android.widget.FrameLayout[%d]/android.widget.FrameLayout";
            driver.findElementByXPath(String.format(btn_xpath, 7)).click();
            driver.findElementByXPath(String.format(btn_xpath, 10)).click();
            driver.findElementByXPath(String.format(btn_xpath, 8)).click();
            Thread.sleep(3000);
    
    
        }
    
        @AfterClass
        public void tearDown() throws Exception {
    
            driver.quit();
    
        }
    }
    
    

    文件右键run

    然后可以看到脚本在跑了

    打开安卓模拟器

    一会就看到

    计算器app在自己动了!

  • 相关阅读:
    data structure,(ADT)
    正交和投影的理解
    高阶函数(包含偏函数)简要介绍
    名字与对象之间的建立引用与解除引用,Python中不可修改对象等,换行加文档字符串,
    迭代器
    CrashCourse 笔记
    列表生成式的进化版——生成器以及iterator
    高代小笔记——关于共轭,欧式空间,双线性函数
    高等代数的笔记杂记——Jordan标准形,Jordan块
    Centos6版本搭建Cobbler,实现自动化部署多版本系统
  • 原文地址:https://www.cnblogs.com/df888/p/10959503.html
Copyright © 2011-2022 走看看