本文参考:
乙醇的blog
虫师的blog
appium一些错误和解决办法
搭建环境
安装Nodejs
- 点这里在官网下载nodejs安装包
- 安装nodejs
- 验证安装是否成功:打开cmd,输入
npm
安装Appium
- 点这里下载AppiumForWindows安装包。
- 解压并安装Appium
- 安装Appium时,可能会提示缺少
.net framework
,建议在微软官网上安装对应的或者最新的.net framework
- 设置Appium环境变量
- 在系统变量
path
中,加入值:;your\appium\path\node_modules\.bin
- 启动Appium,确认是否能正常启动。
安装java环境
- 点这里在官网下载JDK的安装包。
- 安装JDK,注意记录jdk的安装目录,下面设置环境变量需要。
- 设置java环境变量
- 新建系统变量:
JAVA_HOME
,对应的值为:your\jdk\setup\path
- 新建系统变量:
CALSS_PATH
,对应的值为:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- 在系统变量
path
中,加入值:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- 验证环境变量:打开cmd,分别输入
java
和javac
安装Android环境
确保电脑可以翻墙
以API Level 19(Android 4.4.2)为例
- 点这里在官网下载Android Studio安装包。
- 安装Android Studio。注意记录android sdk的目录(通常应该是
C:\Users\your_user\AppData\Local\Android\sdk
),下面设置环境变量需要。 - 配置SDK Manager
- 打开Android Studio
- 欢迎页面中显示右下的
configure
- 点击
SDK Manager
,打开SDK Manager - 在Android SDK->SDK Platforms中,勾选上
Show Package Details
- 找到API Level 19(Android 4.4.2)
- 确认下面的内容都被勾选,点击右下
applay
。如果都已经安装,则不需要做任何操作,如果有未安装的内容,SDK Manager会提示,同时自动下载并安装Not Installed
的内容
- 配置SDK Tools
- 在Android SDK->SDK Tools中,勾选上
Show Package Details
- 确认勾选
Android SDK Build-Tools
下与API 19有关的内容(以防万一,全选也应该关系) - 确认勾选
Android SDK Platform-Tools
- 确认勾选
Android SDK Tools
- 确认勾选
Android Emulator
- 可能还有其它的也被勾选,保持不变
- 点击右下
applay
。如果都已经安装,则不需要做任何操作,如果有未安装的内容,SDK Manager会提示,同时自动下载并安装Not Installed
的内容。
- 设置android环境变量
- 新建系统变量:
ANDROID_HOME
,对应的值为:your\android\sdk\path
- 在系统变量
path
中,加入值:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
- 打开cmd,输入
appium-doctor
,检查环境。
如果看到
All Checks were successful
,说明到这一步,一切还是顺利的。
创建Android模拟器
以API Level 19(Android 4.4.2)为例
- 打开Android Studio
- 创建一个新项目
- 点击
Tools->Android->AVD Manager
- 点击
Create
- 选择一个屏幕尺寸,next
- 在x86 Images中选择API Level 19,第一次可能需要下载。next
- 确认配置,finish
- 然后就可以启动模拟器了。
到这一步,安卓模拟器运行的环境就算搭建完了。
安装ruby的Appium库
官网文档点这里
可能还需要安装selenium-webdriver的gem
gem update --system
gem update bundler
gem uninstall -aIx appium_lib
gem install --no-rdoc --no-ri appium_lib
运行
启动安卓模拟器
- 打开AVD Manager
- 选择之前创建的模拟器(以API Level 19为例)
- 启动
配置Appium
- 打开Appium
- 点击左上的安卓图标,打开setting页面
- 确认Platform Name是Android
- 确认Automation Name是Appium
- 确认PlatformVersion是API Level 19
- 点右上的运行图标,运行Appium
运行脚本
以下是demo script
require 'appium_lib'
caps = { caps: { platformName: 'Android', appActivity: '.Calculator', appPackage: 'com.android.calculator2',deviceName:'Android Emulator' },
appium_lib: { sauce_username: nil, sauce_access_key: nil } }
driver = Appium::Driver.new(caps).start_driver
driver.find_element(name: '1').click
driver.find_element(name: '5').click
driver.find_element(name: '9').click
driver.find_element(name: 'delete').click
driver.find_element(name: '7').click
driver.find_element(name: '4').click
driver.find_element(name: '+').click
driver.find_element(name: '2').click
driver.find_element(name: '0').click
driver.find_element(id: 'com.android.calculator2:id/minus').click
driver.find_element(id: 'com.android.calculator2:id/digit8').click
driver.find_element(id: 'com.android.calculator2:id/digit8').click
driver.find_element(id: 'com.android.calculator2:id/digit3').click
driver.find_element(id: 'com.android.calculator2:id/equal').click
运行该脚本即可
到这一步,算是成功了。
一些可能会用到的工具
uiautomatorviewer.bat
- 位置在
your\android\sdk\path\tools\bin
下 - 这个工具可以查看手机界面中控件的属性,包括name、id、class等,可以方便定位控件。
如果启动该工具出现Unable to connect to adb. Check if adb is installed correctly
错误,打开uiautomatorviewer.bat,找到uiautomatorviewer.bat文件最后一行:
call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %*
将其中的binddir=%prog_dir%
修改为SDK的platform-tools所在路径。
monitor.bat
- 位置在
your\android\sdk\path\tools\
下 - 这个工具可以查看log以及其它的一些信息
- 建议先启动该工具后,再启动模拟器
一些可能会遇到问题
- 运行appium脚本出现
Requested a new session but one was in progress
- 重新停止appium服务,开启Appium服务
- 在Genarel Setting中设置成覆盖Session,重启Appium服务
以防万一,在脚本中,保证运行一次driver.quit
- 打开Android Device Monitor后,Device offline
- 重启手机或者模拟器
- 重新接入手机usb