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对象中的这些属性尝试连接到设备/仿真器:

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

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

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

命令

  1 command
  2 activateIMEEngine
  3 availableIMEEngines
  4 back
  5 background
  6 clear
  7 click
  8 complexTap
  9 deactivateIMEEngine
 10 defaultContextName
 11 defaultWebviewName
 12 doKey
 13 doTouchAction
 14 doTouchDrag
 15 drag
 16 elementDisplayed
 17 elementEnabled
 18 elementSelected
 19 fakeFlick
 20 fakeFlickElement
 21 findElOrEls
 22 fixRelease
 23 flick
 24 getActiveIMEEngine
 25 getAlertText
 26 getAttribute
 27 getContexts
 28 getCurrentActivity
 29 getCurrentContext
 30 getDeviceTime
 31 getDisplayDensity
 32 getLocationInView
 33 getLog
 34 getLogTypes
 35 getName
 36 getNetworkConnection
 37 getOrientation
 38 getPageSource
 39 getScreenshot
 40 getSize
 41 getStrings
 42 getSystemBars
 43 getText
 44 getWindowSize
 45 hideKeyboard
 46 installApp
 47 isAppInstalled
 48 isIMEActivated
 49 isKeyboardShown
 50 isLocked
 51 isWebContext
 52 keyevent
 53 keys
 54 lock
 55 longPressKeyCode
 56 onChromedriverStop
 57 openNotifications
 58 openSettingsActivity
 59 parseTouch
 60 performGesture
 61 performMultiAction
 62 performTouch
 63 pinchClose
 64 pinchOpen
 65 postAcceptAlert
 66 postDismissAlert
 67 pressKeyCode
 68 pullFile
 69 pullFolder
 70 pushFile
 71 removeApp
 72 replaceValue
 73 reset
 74 setAlertText
 75 setContext
 76 setGeoLocation
 77 setLocation
 78 setNetworkConnection
 79 setOrientation
 80 setValue
 81 setUrl
 82 startActivity
 83 startChromedriverProxy
 84 stopChromedriverProxies
 85 suspendChromedriverProxy
 86 swipe
 87 tap
 88 toggleData
 89 toggleFlightMode
 90 toggleLocationServices
 91 toggleSetting
 92 toggleWiFi
 93 touchDown
 94 touchLongClick
 95 touchMove
 96 touchUp
 97 unlock
 98 unlockWithHelperApp
 99 unlockWithUIAutomation
100 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环境变量指定。

时间: 2024-12-15 01:42:20

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

六 APPIUM Android 定位方式

文本转自:http://www.cnblogs.com/sundalian/p/5629500.html APPIUM Android 定位方式 1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement element = driver.findElement(By.id("com.tencent.mm:id/do")); 或者: driver.findElementById("com.t

Appium Android测试环境搭建 for Mac

Appium Android测试环境搭建 涉及的资源,工具都很多 ,从网上各种资料查找,整合一下资源,针对小白级别. 1.Appium安装: 转载自:http://www.cnblogs.com/oscarxie/p/3894559.html. 2.Mac配置Android环境变量: 转载自:http://www.jianshu.com/p/84f3baf1682c 3.Mac安装Android模拟器genymotion: 转载自:http://blog.csdn.net/l_215851356

Appium - Android 对照 iOS

作者: Max.Bai 时间: 2014/10 Appium - Android 对照 iOS Appium 支持Android也支持iOS.可是两者还有非常大的差别,我使用Appium一个多月,刚開始是Android,后面才用iOS.所以做iOS自己主动化的时候比Android艰难多了,后来才发现这两个的模式有一定的差别. (当然可能是我Mac的基础太差)就以我在理解浅显的描写叙述下两者的差别. Appium Android 工作模式(例如以下经验不过我在windows上的经验.mac上只用了

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

通过上一篇文章中<Appium Android Bootstrap源代码分析之简单介绍>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一个初步的了解,那么依照正常的写书的思路,下一个章节应该就要去看bootstrap是如何建立socket来获取数据然后如何进行处理的了. 但本人认为这样子做并不会太好,由于到时整篇文章会变得非常的冗长,由于你在编写的过程中碰到不认识的类又要跳入进去进行说明分析. 这里我认为应该尝试吸取著名的<重构>

Appium Android Bootstrap源码分析之控件AndroidElement

通过上一篇文章<Appium Android Bootstrap源码分析之简介>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一个初步的了解,那么按照正常的写书的思路,下一个章节应该就要去看bootstrap是如何建立socket来获取数据然后怎样进行处理的了.但本人觉得这样子做并不会太好,因为到时整篇文章会变得非常的冗长,因为你在编写的过程中碰到不认识的类又要跳入进去进行说明分析.这里我觉得应该尝试吸取著名的<重构>这本书的建议

开发Android硬件驱动程序

一. 1.实现内核驱动程序模块 驱动程序freg的目录结构如下: ~/android-2.3_r1/kernel/goldfish ----drivers ----freg ----freg.h ----freg.c ----Kconfig ----Makefile freg.h和freg.c请参考Linux字符设备驱动http://blog.csdn.net/jltxgcy/article/details/29184391. Kconfig如下: config FREG tristate "F

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

通过上一篇文章<Appium Android Bootstrap源码分析之控件AndroidElement>我们知道了Appium从pc端发送过来的命令如果是控件相关的话,最终目标控件在bootstrap中是以AndroidElement对象的方式呈现出来的,并且该控件对象会在AndroidElementHash维护的控件哈希表中保存起来.但是appium触发一个命令除了需要提供是否与控件相关这个信息外,还需要其他的一些信息,比如,这个是什么命令?这个就是我们这篇文章需要讨论的话题了. 下面我

Appium - Android 对比 iOS

作者: Max.Bai 时间: 2014/10 Appium - Android 对比 iOS Appium 支持Android也支持iOS,但是两者还有很大的区别,我使用Appium一个多月,刚开始是Android,后面才用iOS,所以做iOS自动化的时候比Android艰难多了,后来才发现这两个的模式有一定的差别.(当然可能是我Mac的基础太差)就以我在理解浅显的描述下两者的区别. Appium Android 工作模式(如下经验仅仅是我在windows上的经验,mac上只用了ios,如有说

二 APPIUM Android自动化 测试初体验

本文转自:http://www.cnblogs.com/sundalian/p/5629358.html 1.创建一个maven项目 成功新建工程: 编辑pom.xml,在<dependencies></dependencies>下添加appium相关依赖: <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <vers

appium android 初体验

代码用的appium自带的例子,就不贴了. 遇到的两个问题, Could not find a Android device 因为没有android真机,所以用模拟器跑,一开始,我以为会自动帮我启动android模拟器然后运行. 实际上是要自己启动了android模拟器才能行,不然就报Could not find a Android device UiAutomator quit before it successfully launched android模拟器的速度实在不敢恭维,还没开机完成