Appium Android Driver是Android设备的测试自动化工具。Appium Android驱动程序自动化原生的,混合的和移动的Web应用程序,在模拟器,仿真器和真实设备上进行测试。Appium Android驱动程序是Appium移动测试自动化工具的一部分。

注意:此repo的问题跟踪已被禁用。请改用主要的Appium问题追踪器

  

安装

npm install appium-android-driver

  

用法

导入Android驱动程序,设置所需功能并创建会话:

import { AndroidDriver } from `appium-android-driver`

let defaultCaps = {
app: 'path/to/your.apk',
deviceName: 'Android',
platformName: 'Android'
}; let driver = new AndroidDriver();
await driver.createSession(defaultCaps);

 运行命令:

await driver.setOrientation('LANDSCAPE');
console.log(await driver.getOrientation()); // -> 'LANDSCAPE'

 

指定和选择设备/仿真器

驱动程序将根据desiredCapabilities对象中的这些属性尝试连接到设备/仿真器:

  1. avd:以给定的名称启动或连接到仿真器。
  2. udid:使用给定的UDID连接到设备。
  3. platformVersion:连接到操作系统以所需操作系统开始的第一个设备或主动仿真器。这意味着如果有多个可用,将从输出中platformVersion: 5获取第一个5x设备adb devices

如果没有给出这些功能,驱动程序将连接到从输出返回的第一个设备或主动仿真器adb devices

如果给出了这些功能中的多个功能,驱动程序将仅使用上述顺序的功能。那就是avd优先考虑udid,优先考虑platformVersion

命令

 command
activateIMEEngine
availableIMEEngines
back
background
clear
click
complexTap
deactivateIMEEngine
defaultContextName
defaultWebviewName
doKey
doTouchAction
doTouchDrag
drag
elementDisplayed
elementEnabled
elementSelected
fakeFlick
fakeFlickElement
findElOrEls
fixRelease
flick
getActiveIMEEngine
getAlertText
getAttribute
getContexts
getCurrentActivity
getCurrentContext
getDeviceTime
getDisplayDensity
getLocationInView
getLog
getLogTypes
getName
getNetworkConnection
getOrientation
getPageSource
getScreenshot
getSize
getStrings
getSystemBars
getText
getWindowSize
hideKeyboard
installApp
isAppInstalled
isIMEActivated
isKeyboardShown
isLocked
isWebContext
keyevent
keys
lock
longPressKeyCode
onChromedriverStop
openNotifications
openSettingsActivity
parseTouch
performGesture
performMultiAction
performTouch
pinchClose
pinchOpen
postAcceptAlert
postDismissAlert
pressKeyCode
pullFile
pullFolder
pushFile
removeApp
replaceValue
reset
setAlertText
setContext
setGeoLocation
setLocation
setNetworkConnection
setOrientation
setValue
setUrl
startActivity
startChromedriverProxy
stopChromedriverProxies
suspendChromedriverProxy
swipe
tap
toggleData
toggleFlightMode
toggleLocationServices
toggleSetting
toggleWiFi
touchDown
touchLongClick
touchMove
touchUp
unlock
unlockWithHelperApp
unlockWithUIAutomation
wrapBootstrapDisconnect

API备注

lock在Android中的行为与iOS中的行为不同。在Android中,它没有任何参数,并锁定屏幕并立即返回。

Development

Transpile ES2015 code

gulp transpile

  

Watch

npm run watch

  

Test

npm test

  

一些测试需要特定的仿真器。目前它们有两个方面:

  1. API级别25:将ANDROID_25_AVD环境变量设置为avd的名称,或默认为"Nexus_5_API_25"。如果不存在,则跳过测试。
  2. API级别24:将ANDROID_24_NO_GMS_AVD环境变量设置为avd的名称,或默认为"Nexus_5_API_24"。如果不存在,则跳过测试。

一些测试还需要特定版本的Chromedriver(特别是2.20),该test/assets文件夹中可用,或者可以使用 CHROME_2_20_EXECUTABLE环境变量指定。

appium-Android的驱动程序的更多相关文章

  1. 安卓自动化测试:Android studio 自带的 Record Espresso Test || [ Appium & (Android studio || Python|| Eclipse ) ]

    1.Android studio 自带的 Record Espresso Test  https://developer.android.com/studio/test/espresso-test-r ...

  2. Appium Android Bootstrap控制源代码的分析AndroidElement

    通过上一篇文章中<Appium Android Bootstrap源代码分析之简单介绍>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一 ...

  3. Appium Android Bootstrap源码分析之启动运行

    通过前面的两篇文章<Appium Android Bootstrap源码分析之控件AndroidElement>和<Appium Android Bootstrap源码分析之命令解析 ...

  4. Appium Android Bootstrap源码分析之命令解析执行

    通过上一篇文章<Appium Android Bootstrap源码分析之控件AndroidElement>我们知道了Appium从pc端发送过来的命令如果是控件相关的话,最终目标控件在b ...

  5. Appium Android Bootstrap源码分析之控件AndroidElement

    通过上一篇文章<Appium Android Bootstrap源码分析之简介>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一个初步的 ...

  6. Android内核驱动程序的编写和编译过程

    注意:涉及的代码为android内核代码而不是android源码. 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非ip ...

  7. Appium 【已解决】提示报错:Attempt to re-install io.appium.android.ime without first uninstalling.

    详细报错:Failed to install D:\AutoTest\appium\Appium\node_modules\appium\build\unicode_ime_apk\UnicodeIM ...

  8. 关于Appium android input manager for Unicode 提示信息

    Appium调完输入法后,会弹出  Appium android input manager for Unicode 提示信息相关的提示信息,每次运行如此,如下图 网络上查找一遍,基本解决了,只要在设 ...

  9. jenkins+appium android app自动化测试

    jenkins安装 pytest+jenkins安装+allure报告 新建任务 其他默认,保存 立即构建 test_login.py from src.pages import login_page ...

  10. Appium Android 元素定位方法 原生+H5

    APPIUM Android 定位方式   1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement eleme ...

随机推荐

  1. flutter网格布局之GridView组件

    前面总结了使用ListView来实现列表,但是,有的时候,数据量很大,需要使用矩阵方式排列才能更清晰的展示数据,在flutter中,可以使用网格列表组件GridView来实现这个布局. GridVie ...

  2. C++ string.replace的使用

    //下面是一个检查一个字符串中是否有'.'的函数,该函数将找到的'.'转化为'_'. inline void checkName(string& name) { std::; while (s ...

  3. BZOJ 2281: [Sdoi2011]黑白棋(dp+博弈论)

    传送门 解题思路 首先发现可以把相邻的黑白棋子之间的距离看成一堆棋子,那么这个就可以抽象成\(Nim\)游戏每次可以取\(d\)堆这个游戏,而这个游戏的\(SG\)值为\(x\%(d+1)\),那么题 ...

  4. Python实现BFS,DFS

    BFS:队 graph = { "A" : ["B","C"], "B" : ["A"," ...

  5. Unity编程标准导引-1.1下载和安装Unity

    本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan 1.1.下载和安装Unity 1.1.1 选取版本 首先找到Unity官方网站https://s ...

  6. [CSP-S模拟测试]:平均数(二分答案+归并排序)

    题目描述 有一天,小$A$得到了一个长度为$n$的序列.他把这个序列的所有连续子序列都列了出来,并对每一个子序列都求了其平均值,然后他把这些平均值写在纸上,并对它们进行排序,最后他报出了第$k$小的平 ...

  7. python中的encode()和decode()函数

    前言: 我们知道,计算机是以二进制为单位的,也就是说计算机只识别0和1,也就是我们平时在电脑上看到的文字,只有先变成0和1,计算机才会识别它的意思.这种数据和二进制的转换规则就是编码.计算机的发展中, ...

  8. Openstack Restful API 开发框架 Paste + PasteDeploy + Routes + WebOb

    目录 目录 Paste PasteDeploy Routes WebOb 简介 WSGI入口 Paste和PasteDeploy 配置文件 pasteini 中间件的实现 Routes WebOb 参 ...

  9. vux使用方法

    # 使用vux及vuex-i18n需要做的工作 ### 1.首先需要安装vux ### 2.需要安装vux-loader ### 3.需要安装vuex ### 4.需要安装vuex-i18n ### ...

  10. SPRING CLOUD微服务DEMO-下篇

    目录 1 Hystix 1.1 简介 1.2 配置并测试 2. Feign 2.1 简介 2.2 使用Feign 2.3 负载均衡 2.4 Hystrix支持 2.5.请求压缩 3. Zuul网关 3 ...