1. 程式人生 > >appium-Android的驅動程序

appium-Android的驅動程序

driver 模擬器 cape href screen dea scrip touch gettext

  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環境變量指定。

appium-Android的驅動程序