zoukankan      html  css  js  c++  java
  • appium学习笔记(环境安装配置,设备启动)

     

    Android SDK下载及配置

    • 下载地址

    • 下载后解压缩,打开SDK Manager.exe,下载适当版本的Android包

    • 配置环境变量:目录下的tools路径(含uiautomatorviewer工具)以及platform-tools路径(含adb工具)添加到path变量中,以便后续命令行运行指令

    • 可以打开AVD Manager配置模拟器,也可以使用真机

    • 命令行下运行 adb devices 查看当前连接的Android设备,如果遇到提示adb server版本不一致问题,可能是端口被占用引起的,可以看下电脑是否安装了360手机助手之类的程序;如果遇到设备unauthorized,重新连一下真机或者[ 将手机设置->辅助功能->开发者模式->撤销usb调试授权,重新打开开发者模式 ],没问题的话可以看到类似下面这种信息

      C:Userssuneee>adb devices
      List of devices attached
      d2ddc2a4        device

    Appium Server安装

    • 下载地址

    • 一直点击下一步,安装完成后配置环境变量,把安装目录Appium下的node_modules.bin路径添加到path变量中

    • 命令行下运行appium-doctor,发现提示Node模块不能识别,此时把Appium目录也添加到path变量中(也可以安装配置node.js),再次运行appium-doctor,可以看到以下信息,说明appium server需要的环境已经配置完成

      C:Userssuneee>appium-doctor
      Running Android Checks
      ✔ ANDROID_HOME is set to "E:wangjzSoftwareandroid-sdk_r24.4.1"
      ✔ JAVA_HOME is set to "C:Program FilesJavajdk1.8.0_131."
      ✔ ADB exists at E:wangjzSoftwareandroid-sdk_r24.4.1platform-toolsadb.exe
      ✔ Android exists at E:wangjzSoftwareandroid-sdk_r24.4.1	oolsandroid.bat
      ✔ Emulator exists at E:wangjzSoftwareandroid-sdk_r24.4.1	oolsemulator.exe
      ✔ Android Checks were successful.
      ✔ All Checks were successful

       注:可以看到检测了ANDROID_HOME和JAVA_HOME变量,配置的时候把SDK和JDK的一级目录配置到对应的ANDROID_HOME和JAVA_HOME变量即可

    • 运行Appium.exe,可以配置一些参数,点三角形图标启动服务

       启动中如果遇到 main.js: error: argument "--app": Expected one argument. null 错误,注意Application Path未设置内容时不要勾选

            

    Appium java-client 安装

    Maven项目下pom.xml中添加如下依赖即可

            <!-- https://mvnrepository.com/artifact/io.appium/java-client -->
            <dependency>
                <groupId>io.appium</groupId>
                <artifactId>java-client</artifactId>
                <version>6.1.0</version>
            </dependency>
    

    UI元素定位信息

    设备连接成功后,命令行运行uiautomatorviewer,打开UI Automator Viewer工具,点击左上角工具栏手机图标,可以获取到当前设备页面了,工具上可以看到元素的详情。

    PS:对于hybrid app,网页元素的定位要通过chrome的devices来定位

    Demo

    测试教程网上找了个例子,运行即可看到效果

    import org.openqa.selenium.*;
    import org.openqa.selenium.remote.DesiredCapabilities;
    
    import io.appium.java_client.AppiumDriver;
    import io.appium.java_client.android.AndroidDriver;
    import org.springframework.util.Assert;
    
    import java.net.MalformedURLException;
    import java.net.URL;
    
    
    public class AppiumDemo {
    
        public static void main(String[] args) throws MalformedURLException, InterruptedException {
    
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability("deviceName", "Android Emulator");
            capabilities.setCapability("automationName", "Appium");
            capabilities.setCapability("platformName", "Android");
            capabilities.setCapability("platformVersion", "6.0");
            capabilities.setCapability("appPackage", "com.android.calculator2");
            capabilities.setCapability("appActivity", ".Calculator");
    
            AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    
            driver.findElement(By.name("1")).click();
            driver.findElement(By.name("5")).click();
            driver.findElement(By.name("9")).click();
            driver.findElement(By.name("删除")).click();
            driver.findElement(By.name("+")).click();
            driver.findElement(By.name("6")).click();
            driver.findElement(By.name("=")).click();
            Thread.sleep(2000);
    
            String result = driver.findElement(By.className("android.widget.EditText")).getText();
            Assert.isTrue(Integer.parseInt(result) == 21,"OK");
            System.out.println(result);
    
            driver.quit();
        }
    
    }

     其中可以运行 adb shell dumpsys activity activities>log.txt(设备上需要先打开你的app)去查看 appPackage 、 appActivity的值,如下图“/”前的是appPackage,后面是appActivity

  • 相关阅读:
    php函数总结
    文本框输入限制
    e.keyCode和e.which使用
    transform总结
    wampSever的mysql操作
    linux命令总结
    nginx总结
    微雪的stm32学习资料
    串口+RS485驱动
    cubemx+stm32串口学习汇总资料
  • 原文地址:https://www.cnblogs.com/kusy/p/9299753.html
Copyright © 2011-2022 走看看