appium学习笔记(环境安装配置,设备启动)

 

Android SDK下载及配置

  • 下载地址

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

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

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

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

    C:\Users\suneee>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:\Users\suneee>appium-doctor
    Running Android Checks
    ✔ ANDROID_HOME is set to "E:\wangjz\Software\android-sdk_r24.4.1"
    ✔ JAVA_HOME is set to "C:\Program Files\Java\jdk1.8.0_131."
    ✔ ADB exists at E:\wangjz\Software\android-sdk_r24.4.1\platform-tools\adb.exe
    ✔ Android exists at E:\wangjz\Software\android-sdk_r24.4.1\tools\android.bat
    ✔ Emulator exists at E:\wangjz\Software\android-sdk_r24.4.1\tools\emulator.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

 

posted on 2018-07-12 15:39  一個未来  阅读(525)  评论(1编辑  收藏  举报

导航