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 ...
随机推荐
- 【bzoj1458】士兵占领(最大流||有源汇最大流)
转载 http://hzwer.com/2963.html Description 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里 ...
- 【LeetCode 57】插入区间
题目链接 [题解] 这题要分四种情况. 第一种.区间在所有区间的前面. 第二种.区间在所有区间的后面. 第三种.区间在某两个区间之间但是没有交集. 第四种.区间和某个区间产生了相交. 对于第四种枚举第 ...
- php面试专题---6、正则表达式考点
php面试专题---6.正则表达式考点 一.总结 一句话总结: 正则匹配步骤:1.先写出一个要匹配的字符串:2.自左向右的顺序使用正则表达式的原子和元字符进行拼接:3.最终加入模式修正符: 1.写出一 ...
- 题解 P1017 【进制转换】
我赶jio这个题难道是让我们写快写? 不管了,赶紧把咕咕咕了一万年的题解写出来. 这个题就是考察负进制和在mod意义下的除法运算的基础运算. (其实也没多大问题) 首先我们先假设一个原始数据\(num ...
- ceph安装问题
ceph-deploy安装 Yum priorities pluginLoaded plugins: fastestmirror Loaded plugins: fastestmirror, prio ...
- jenkins clone代码时间太长怎么办?
在Jenkins的默认配置中,clone代码时会拉取所有历史版本的代码,而且默认的超时时限只有10分钟.这就造成在某些项目中,由于代码量本身就比较大,历史版本也比较多,再加上网络环境不是特别好,Jen ...
- JetBrains.dotPeek
Free .NET Decompiler and Assembly Browser Decompile .NET assemblies to C# dotPeek is a free-of-charg ...
- git 忽略提交及已push过得文件忽略提交
在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交 Git 忽略文件提交的方法 这种方式通过在项目的某个文件 ...
- 带有headers的urllib库爬取
#请求头 #1.引入模块 from urllib import request #2.操作 #(1)定义目标url base_url = "http://www.langlang2017.c ...
- lua string.byte怎么判断是中文还是别的
string.byte(char)>127是中文,string.sub(s,i,i+2),占两个字节,中文 string.byte(char)<=127是普通字符,咱一个字节