专栏首页好好学习吧appium学习笔记(环境安装配置,设备启动)

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需要的环境已经配置完成  注:可以看到检测了ANDROID_HOME和JAVA_HOME变量,配置的时候把SDK和JDK的一级目录配置到对应的ANDROID_HOME和JAVA_HOME变量即可
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
  • 运行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工具,点击左上角工具栏手机图标,可以获取到当前设备页面了,工具上可以看到元素的详情

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux基础学习整理

    未来sky
  • django使用https

    http://www.voidcn.com/article/p-xxdfvetx-da.html

    未来sky
  • 记一次ssh.exec_command(cmd)执行后读取结果为空

    绿色背景的代码是修改后的逻辑,原先出问题的代码就是去掉这部分的。数据走的是黄色else的逻辑,每次走完return的结果都是'',调试的时候打印的result内...

    未来sky
  • Ajax几种常用模式

    设计模式不是要遵循的标准,只不过是对增进行之有效的解决方案的总结。每个模式都凝聚了开发人员社区的集体智慧,而每个开发人员都可以决定是否在其应用中实现某个模式。 ...

    八哥
  • Mysql 批量更新数据

    更新 table1 表的 name 字段,当 id 等于 1 时 ,更新 name = xxx1

    Alone88
  • 使用 Intel HAXM 为 Android 模拟器加速,媲美真机

    Android 模拟器一直以运行速度慢著称, 本文介绍使用 Intel HAXM 技术为 Android 模拟器加速, 使模拟器运行度媲美真机, 彻底解决模拟器...

    beginor
  • 雷军 1994 年写的代码,像诗一样优雅!不服不行!

    雷军曾自夸自己写的代码像诗一样优雅,网友感觉这雷军写的94年代码如何?2019年世界500强企业排行榜,仅成立9年的小米全球排名第468位,这让小米的创始人雷军...

    路人甲Java
  • 领航专题 | 助力产业效能优化、构建产业互联网新格局

    11月24日,腾讯企点产业互联网领航生态合作沙龙会议,在腾讯华东总部腾云大厦举行。 本次活动由上海蚁城科技主办,腾讯企点、B2B内参、产业互联网雄鹰会协办。 ...

    腾讯企点
  • asp.net core web的导入导出excel功能

    这里主要记录下asp.net core web页面上进行导入导出excel的操作。

    Vincent-yuan
  • 速读原著-TCP/IP(TCP窗口大小通告)

    在图1 9 - 4中,我们可以观察到s l i p通告窗口大小为4 0 9 6字节,而v a n g o g h通告其窗口大小为8 1 9 2个字节。该图中的大...

    cwl_java

扫码关注云+社区

领取腾讯云代金券