appium-Android的驱动程序
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对象中的这些属性尝试连接到设备/仿真器:
avd:以给定的名称启动或连接到仿真器。udid:使用给定的UDID连接到设备。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
一些测试需要特定的仿真器。目前它们有两个方面:
- API级别25:将
ANDROID_25_AVD环境变量设置为avd的名称,或默认为"Nexus_5_API_25"。如果不存在,则跳过测试。 - API级别24:将
ANDROID_24_NO_GMS_AVD环境变量设置为avd的名称,或默认为"Nexus_5_API_24"。如果不存在,则跳过测试。
一些测试还需要特定版本的Chromedriver(特别是2.20),该test/assets文件夹中可用,或者可以使用 CHROME_2_20_EXECUTABLE环境变量指定。
appium-Android的驱动程序的更多相关文章
- 安卓自动化测试: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 ...
- Appium Android Bootstrap控制源代码的分析AndroidElement
通过上一篇文章中<Appium Android Bootstrap源代码分析之简单介绍>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一 ...
- Appium Android Bootstrap源码分析之启动运行
通过前面的两篇文章<Appium Android Bootstrap源码分析之控件AndroidElement>和<Appium Android Bootstrap源码分析之命令解析 ...
- Appium Android Bootstrap源码分析之命令解析执行
通过上一篇文章<Appium Android Bootstrap源码分析之控件AndroidElement>我们知道了Appium从pc端发送过来的命令如果是控件相关的话,最终目标控件在b ...
- Appium Android Bootstrap源码分析之控件AndroidElement
通过上一篇文章<Appium Android Bootstrap源码分析之简介>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一个初步的 ...
- Android内核驱动程序的编写和编译过程
注意:涉及的代码为android内核代码而不是android源码. 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非ip ...
- 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 ...
- 关于Appium android input manager for Unicode 提示信息
Appium调完输入法后,会弹出 Appium android input manager for Unicode 提示信息相关的提示信息,每次运行如此,如下图 网络上查找一遍,基本解决了,只要在设 ...
- jenkins+appium android app自动化测试
jenkins安装 pytest+jenkins安装+allure报告 新建任务 其他默认,保存 立即构建 test_login.py from src.pages import login_page ...
- Appium Android 元素定位方法 原生+H5
APPIUM Android 定位方式 1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement eleme ...
随机推荐
- LUOGU P3759 [TJOI2017]不勤劳的图书管理员(树套树)
传送门 解题思路 和以前做过的一道题有点像,就是区间逆序对之类的问题,用的是\(BIT\)套权值线段树,交换时讨论一下计算答案..跑的不如暴力快.. 代码 #include<iostream&g ...
- [CSP-S模拟测试]:u(差分)
题目背景 $\frac{1}{4}$遇到了一道水题,完全不会做,于是去请教小$D$.小$D$看了一眼就切掉了这题,嘲讽了$\frac{1}{4}$一番就离开了.于是,$\frac{1}{4}$只好来问 ...
- 第七周编程总结&&实验报告五
实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结构. ...
- 105、TensorFlow的变量(一)
import tensorflow as tf mammal = tf.Variable("Elephant", tf.string) ignition = tf.Variable ...
- Oracle下定时删除归档日志脚本
一.报错信息 前几天网站突然访问不了,并且报了如下错误: ora-27101: shared memory realm does not exist ora-01034: oracle not ava ...
- 深入了解JAVA基础(面试)
I.常用类型与编码类问题: 1.Java中的基本类型有什么? byte.short.int.long.float.double.chart.boolean这八种,这 ...
- 如何理解c++迭代器(上)
1.如何理解迭代器?迭代器不是指针,也似乎不是string这种类型 参考:迭代器与指针的区别是? C++map迭代器的++操作是如何实现的?讨论.iterator提供了遍历STL容器里元素的方式,no ...
- HDU 1028 Ignatius and the Princess III (生成函数/母函数)
题目链接:HDU 1028 Problem Description "Well, it seems the first problem is too easy. I will let you ...
- Get The Treasury【HDU-3642】【扫描线】
题目链接 题目给出的是N个体积块,问的是有多少体积重叠了3次及以上? 那么就是怎么处理体积这样子的问题了,看到Z的种类不多的时候,就想着从Z离散化的角度去考虑这个问题了,然后就是怎样子去处理面积了,这 ...
- Java业务代理模式~
业务代理模式用于解耦表示层和业务层. 它基本上用于减少表示层代码中的业务层代码的通信或远程查找功能.在业务层有以下实体. 客户端(Client) - 表示层代码可以是JSP,servlet或UI ja ...