Appium Python-Client helloworld

安装Android SDK

https://www.androiddevtools.cn

下载SDK Tools android-sdk_r24.4.1-windows.zip

设置环境变量ANDROID_HOME=C:\Users\\android-sdk-windows

启动SDK Manager.exe

下载Android 4.4.2 Inter x86 Atom System Image

下载Extras Inter x86 Emulator Accelerator

如果无法下载加速器, 下载这里的: https://github.com/intel/haxm/releases

启动Android虚拟机

执行Inter x86的镜像, 用命令启动 emulator -avd Android5.0.1, 总是提示Trying to vcpu execute at xxx

换成Arm的镜像就可以了, 就是太慢

安装appium-desktop

https://github.com/appium/appium-desktop/releases

下载文件appium-desktop-Setup-1.10.0-ia32.exe

打开后, 会安装在C:\Users\\AppData\Local\appium-desktop

运行, 点"Start Server"

设计测试案例

JSON Representation

{
  "platformName": "Android",
  "platformVersion": "5.0.2",
  "deviceName": "Android Emulator",
  "automationName": "Test1",
  "appPackage": "com.android.calculator2",
  "appActivity": ".Calculator"
}

录制脚本(类型: Python)

el1 = driver.find_element_by_id("com.android.calculator2:id/digit_1")
el1.click()
el2 = driver.find_element_by_accessibility_id("plus")
el2.click()
el3 = driver.find_element_by_id("com.android.calculator2:id/digit_2")
el3.click()
el4 = driver.find_element_by_accessibility_id("equals")
el4.click()

准备测试脚本

创建目录C:\Users\li_wjie\Desktop\appium-test

pip install Appium-Python-Client

脚本内容:

import unittest
from appium import webdriver

desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.0.2'
desired_caps['automationName'] = 'Test1'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.android.calculator2'
desired_caps['appActivity'] = '.Calculator'

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

el1 = driver.find_element_by_id("com.android.calculator2:id/digit_1")
el1.click()
el2 = driver.find_element_by_accessibility_id("plus")
el2.click()
el3 = driver.find_element_by_id("com.android.calculator2:id/digit_2")
el3.click()
el4 = driver.find_element_by_accessibility_id("equals")
el4.click()

print(driver.find_element_by_id('com.android.calculator2:id/formula').text)