appium-uiautomator2-driver 2.29.11 → 2.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/build/index.d.ts +4 -0
  3. package/build/index.d.ts.map +1 -0
  4. package/build/index.js +8 -15
  5. package/build/index.js.map +1 -0
  6. package/build/lib/commands/actions.d.ts +2 -0
  7. package/build/lib/commands/actions.d.ts.map +1 -0
  8. package/build/lib/commands/actions.js +67 -62
  9. package/build/lib/commands/actions.js.map +1 -1
  10. package/build/lib/commands/alert.d.ts +2 -0
  11. package/build/lib/commands/alert.d.ts.map +1 -0
  12. package/build/lib/commands/alert.js +28 -26
  13. package/build/lib/commands/alert.js.map +1 -1
  14. package/build/lib/commands/app-strings.d.ts +3 -0
  15. package/build/lib/commands/app-strings.d.ts.map +1 -0
  16. package/build/lib/commands/app-strings.js +86 -57
  17. package/build/lib/commands/app-strings.js.map +1 -1
  18. package/build/lib/commands/battery.d.ts +2 -0
  19. package/build/lib/commands/battery.d.ts.map +1 -0
  20. package/build/lib/commands/battery.js +26 -16
  21. package/build/lib/commands/battery.js.map +1 -1
  22. package/build/lib/commands/element.d.ts +2 -0
  23. package/build/lib/commands/element.d.ts.map +1 -0
  24. package/build/lib/commands/element.js +140 -159
  25. package/build/lib/commands/element.js.map +1 -1
  26. package/build/lib/commands/find.d.ts +2 -0
  27. package/build/lib/commands/find.d.ts.map +1 -0
  28. package/build/lib/commands/find.js +39 -25
  29. package/build/lib/commands/find.js.map +1 -1
  30. package/build/lib/commands/general.d.ts +4 -0
  31. package/build/lib/commands/general.d.ts.map +1 -0
  32. package/build/lib/commands/general.js +209 -215
  33. package/build/lib/commands/general.js.map +1 -1
  34. package/build/lib/commands/gestures.d.ts +2 -0
  35. package/build/lib/commands/gestures.d.ts.map +1 -0
  36. package/build/lib/commands/gestures.js +206 -193
  37. package/build/lib/commands/gestures.js.map +1 -1
  38. package/build/lib/commands/index.d.ts +2 -0
  39. package/build/lib/commands/index.d.ts.map +1 -0
  40. package/build/lib/commands/index.js +13 -22
  41. package/build/lib/commands/index.js.map +1 -1
  42. package/build/lib/commands/mixins.d.ts +87 -0
  43. package/build/lib/commands/mixins.d.ts.map +1 -0
  44. package/build/lib/commands/mixins.js +26 -0
  45. package/build/lib/commands/mixins.js.map +1 -0
  46. package/build/lib/commands/screenshot.d.ts +2 -0
  47. package/build/lib/commands/screenshot.d.ts.map +1 -0
  48. package/build/lib/commands/screenshot.js +77 -62
  49. package/build/lib/commands/screenshot.js.map +1 -1
  50. package/build/lib/commands/touch.d.ts +2 -0
  51. package/build/lib/commands/touch.d.ts.map +1 -0
  52. package/build/lib/commands/touch.js +48 -38
  53. package/build/lib/commands/touch.js.map +1 -1
  54. package/build/lib/commands/types.d.ts +452 -0
  55. package/build/lib/commands/types.d.ts.map +1 -0
  56. package/build/lib/commands/types.js +3 -0
  57. package/build/lib/commands/types.js.map +1 -0
  58. package/build/lib/commands/viewport.d.ts +2 -0
  59. package/build/lib/commands/viewport.d.ts.map +1 -0
  60. package/build/lib/commands/viewport.js +37 -35
  61. package/build/lib/commands/viewport.js.map +1 -1
  62. package/build/lib/constraints.d.ts +325 -0
  63. package/build/lib/constraints.d.ts.map +1 -0
  64. package/build/lib/constraints.js +51 -0
  65. package/build/lib/constraints.js.map +1 -0
  66. package/build/lib/css-converter.d.ts +45 -0
  67. package/build/lib/css-converter.d.ts.map +1 -0
  68. package/build/lib/css-converter.js +272 -175
  69. package/build/lib/css-converter.js.map +1 -1
  70. package/build/lib/driver.d.ts +904 -0
  71. package/build/lib/driver.d.ts.map +1 -0
  72. package/build/lib/driver.js +726 -485
  73. package/build/lib/driver.js.map +1 -1
  74. package/build/lib/execute-method-map.d.ts +477 -0
  75. package/build/lib/execute-method-map.d.ts.map +1 -0
  76. package/build/lib/execute-method-map.js +542 -0
  77. package/build/lib/execute-method-map.js.map +1 -0
  78. package/build/lib/extensions.d.ts +3 -0
  79. package/build/lib/extensions.d.ts.map +1 -0
  80. package/build/lib/extensions.js +7 -9
  81. package/build/lib/extensions.js.map +1 -1
  82. package/build/lib/helpers.d.ts +7 -0
  83. package/build/lib/helpers.d.ts.map +1 -0
  84. package/build/lib/helpers.js +36 -29
  85. package/build/lib/helpers.js.map +1 -1
  86. package/build/lib/logger.d.ts +3 -0
  87. package/build/lib/logger.d.ts.map +1 -0
  88. package/build/lib/logger.js +5 -10
  89. package/build/lib/logger.js.map +1 -1
  90. package/build/lib/method-map.d.ts +389 -0
  91. package/build/lib/method-map.d.ts.map +1 -0
  92. package/build/lib/method-map.js +11 -17
  93. package/build/lib/method-map.js.map +1 -1
  94. package/build/lib/types.d.ts +44 -0
  95. package/build/lib/types.d.ts.map +1 -0
  96. package/build/lib/types.js +3 -0
  97. package/build/lib/types.js.map +1 -0
  98. package/build/lib/uiautomator2.d.ts +45 -0
  99. package/build/lib/uiautomator2.d.ts.map +1 -0
  100. package/build/lib/uiautomator2.js +340 -299
  101. package/build/lib/uiautomator2.js.map +1 -1
  102. package/build/lib/utils.d.ts +10 -0
  103. package/build/lib/utils.d.ts.map +1 -0
  104. package/build/lib/utils.js +23 -16
  105. package/build/lib/utils.js.map +1 -1
  106. package/build/tsconfig.tsbuildinfo +1 -0
  107. package/index.js +5 -3
  108. package/lib/commands/actions.js +115 -101
  109. package/lib/commands/alert.js +36 -44
  110. package/lib/commands/app-strings.js +79 -58
  111. package/lib/commands/battery.js +27 -28
  112. package/lib/commands/element.js +231 -134
  113. package/lib/commands/find.js +40 -21
  114. package/lib/commands/general.js +262 -336
  115. package/lib/commands/gestures.js +252 -366
  116. package/lib/commands/index.js +11 -31
  117. package/lib/commands/mixins.ts +169 -0
  118. package/lib/commands/screenshot.js +80 -76
  119. package/lib/commands/touch.js +64 -31
  120. package/lib/commands/types.ts +473 -0
  121. package/lib/commands/viewport.js +43 -31
  122. package/lib/constraints.ts +53 -0
  123. package/lib/css-converter.js +9 -1
  124. package/lib/{driver.js → driver.ts} +374 -239
  125. package/lib/execute-method-map.ts +573 -0
  126. package/lib/method-map.ts +11 -0
  127. package/lib/types.ts +57 -0
  128. package/lib/uiautomator2.js +21 -2
  129. package/lib/utils.js +2 -2
  130. package/npm-shrinkwrap.json +395 -528
  131. package/package.json +96 -70
  132. package/build/lib/desired-caps.js +0 -71
  133. package/build/lib/desired-caps.js.map +0 -1
  134. package/lib/desired-caps.js +0 -70
  135. package/lib/method-map.js +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":["_lodash","_interopRequireDefault","require","_driver","_uiautomator","_methodMap","_support","_asyncbox","_bluebird","_index","_appiumAdb","_helpers","_appiumAndroidDriver","_desiredCaps","_portscanner","_os","_path","_extensions","helpers","Object","assign","uiautomator2Helpers","androidHelpers","DEVICE_PORT_RANGE","DEVICE_PORT_ALLOCATION_GUARD","util","getLockFileGuard","path","resolve","os","tmpdir","timeout","tryRecovery","DEVICE_PORT","MJPEG_SERVER_DEVICE_PORT","LOCALHOST_IP4","NO_PROXY","RegExp","CHROME_NO_PROXY","MEMOIZED_FUNCTIONS","AndroidUiautomator2Driver","BaseDriver","newMethodMap","constructor","opts","shouldValidateCaps","shell","locatorStrategies","desiredCapConstraints","uiautomator2","jwpProxyActive","jwpProxyAvoid","apkStrings","settings","DeviceSettings","ignoreUnimportantViews","allowInvisibleElements","onSettingsUpdate","bind","chromedriver","sessionChromedrivers","fn","_","memoize","validateDesiredCaps","caps","createSession","args","sessionId","serverDetails","platform","webStorageEnabled","takesScreenshot","javascriptEnabled","databaseEnabled","networkConnectionEnabled","locationContextEnabled","warnings","desired","curContext","defaultContextName","defaultOpts","fullReset","autoLaunch","adbPort","DEFAULT_ADB_PORT","androidInstallTimeout","defaults","isChromeSession","log","info","pkg","activity","getChromePkg","browserName","appPackage","appActivity","reboot","setAvdFromCapabilities","app","configureApp","APK_EXTENSION","APKS_EXTENSION","checkAppPresent","startUiAutomator2Session","fillDeviceDetails","mjpegScreenshotUrl","mjpegStream","mjpeg","MJpegStream","start","e","deleteSession","pixelRatio","getDevicePixelRatio","statBarHeight","getStatusBarHeight","viewportRect","getViewPortRect","driverData","getSession","sessionData","debug","uia2Data","jwproxy","command","isEmulator","adb","avd","deviceName","errorAndThrow","platformVersion","avdDevice","replace","allocateSystemPort","forwardPort","localPort","checkPortStatus","systemPort","_hasSystemPortInCaps","startPort","endPort","findAPortNotInUse","releaseSystemPort","removePortForward","allocateMjpegServerPort","mjpegServerPort","releaseMjpegServerPort","udid","emPort","getDeviceInfoFromCaps","createADB","apiLevel","getApiLevel","setHiddenApiPolicy","ignoreHiddenApiPolicyError","hasValue","gpsEnabled","toggleGPSLocationProvider","warn","appInfo","getLaunchInfo","curDeviceId","deviceUDID","initDevice","initUiAutomator2Server","disableWindowAnimation","isAnimationOn","setAnimationState","_wasWindowAnimationDisabled","initAUT","startSession","addDeviceInfoToCaps","skipUnlock","unlock","startChromeSession","ensureAppStarts","orientation","setOrientation","autoWebview","viewName","defaultWebviewName","autoWebviewTimeout","retryInterval","setContext","apiVersion","manufacturer","model","realDisplaySize","displayDensity","mobileGetDeviceInfo","deviceApiLevel","parseInt","deviceScreenSize","deviceScreenDensity","deviceModel","deviceManufacturer","uiautomator2Opts","host","remoteAdbHost","devicePort","apk","tmpDir","disableSuppressAccessibilityService","readTimeout","uiautomator2ServerReadTimeout","UiAutomator2Server","proxyReqRes","proxyCommand","skipServerInstallation","installServerApk","uiautomator2ServerInstallTimeout","addToDeviceIdleWhitelist","SETTINGS_HELPER_PKG_ID","SERVER_PACKAGE_ID","SERVER_TEST_PACKAGE_ID","stderr","message","uninstallOtherPackages","parseArray","otherApps","B","all","map","installOtherApks","noReset","isAppInstalled","noSign","checkApkCert","requireDefaultCert","signApp","skipUninstall","uninstallApk","installApk","fastReset","resetApp","appWaitPackage","appWaitActivity","androidCoverage","forceAppLaunch","processExists","startApp","action","intentAction","category","intentCategory","flags","intentFlags","waitPkg","waitActivity","waitForLaunch","appWaitForLaunch","waitDuration","appWaitDuration","optionalIntentArguments","stopApp","dontStopAppOnReset","retry","user","userProfile","screenRecordingStopTasks","isEmpty","_screenRecordingProperties","stopRecordingScreen","mobileIsMediaProjectionRecordingRunning","mobileStopMediaProjectionRecording","_screenStreamingProps","mobileStopScreenStreaming","removeAllSessionWebSocketHandlers","server","stopChromedriverProxies","err","task","ign","endAndroidCoverage","androidCoverageEndIntent","broadcast","shouldTerminateApp","forceStop","stopLogcat","error","setDefaultHiddenApiPolicy","avdName","killEmulator","stop","fs","exists","wrapBootstrapDisconnect","wrapped","restart","proxyActive","canProxy","getProxyAvoidList","nativeWebScreenshot","isChromeBrowser","exports","cmd","toPairs","androidCommands","prototype","commands","_default","default"],"sources":["../../lib/driver.js"],"sourcesContent":["import _ from 'lodash';\nimport { BaseDriver, DeviceSettings } from 'appium/driver';\nimport {\n UiAutomator2Server, SERVER_PACKAGE_ID, SERVER_TEST_PACKAGE_ID\n} from './uiautomator2';\nimport { newMethodMap } from './method-map';\nimport { fs, util, mjpeg } from 'appium/support';\nimport { retryInterval } from 'asyncbox';\nimport B from 'bluebird';\nimport commands from './commands/index';\nimport { DEFAULT_ADB_PORT } from 'appium-adb';\nimport uiautomator2Helpers from './helpers';\nimport { androidHelpers, androidCommands, SETTINGS_HELPER_PKG_ID, } from 'appium-android-driver';\nimport desiredCapConstraints from './desired-caps';\nimport { findAPortNotInUse, checkPortStatus } from 'portscanner';\nimport os from 'os';\nimport path from 'path';\nimport { APK_EXTENSION, APKS_EXTENSION } from './extensions';\n\n\nconst helpers = Object.assign({}, uiautomator2Helpers, androidHelpers);\n\n// The range of ports we can use on the system for communicating to the\n// UiAutomator2 HTTP server on the device\nconst DEVICE_PORT_RANGE = [8200, 8299];\n\n// The guard is needed to avoid dynamic system port allocation conflicts for\n// parallel driver sessions\nconst DEVICE_PORT_ALLOCATION_GUARD = util.getLockFileGuard(\n path.resolve(os.tmpdir(), 'uia2_device_port_guard'),\n {timeout: 25, tryRecovery: true}\n);\n\n// This is the port that UiAutomator2 listens to on the device. We will forward\n// one of the ports above on the system to this port on the device.\nconst DEVICE_PORT = 6790;\n// This is the port that the UiAutomator2 MJPEG server listens to on the device.\n// We will forward one of the ports above on the system to this port on the\n// device.\nconst MJPEG_SERVER_DEVICE_PORT = 7810;\n\nconst LOCALHOST_IP4 = '127.0.0.1';\n\n// NO_PROXY contains the paths that we never want to proxy to UiAutomator2 server.\n// TODO: Add the list of paths that we never want to proxy to UiAutomator2 server.\n// TODO: Need to segregate the paths better way using regular expressions wherever applicable.\n// (Not segregating right away because more paths to be added in the NO_PROXY list)\nconst NO_PROXY = [\n ['DELETE', new RegExp('^/session/[^/]+/actions')],\n ['GET', new RegExp('^/session/(?!.*/)')],\n ['GET', new RegExp('^/session/[^/]+/alert_[^/]+')],\n ['GET', new RegExp('^/session/[^/]+/alert/[^/]+')],\n ['GET', new RegExp('^/session/[^/]+/appium/[^/]+/current_activity')],\n ['GET', new RegExp('^/session/[^/]+/appium/[^/]+/current_package')],\n ['GET', new RegExp('^/session/[^/]+/appium/app/[^/]+')],\n ['GET', new RegExp('^/session/[^/]+/appium/device/[^/]+')],\n ['GET', new RegExp('^/session/[^/]+/appium/settings')],\n ['GET', new RegExp('^/session/[^/]+/context')],\n ['GET', new RegExp('^/session/[^/]+/contexts')],\n ['GET', new RegExp('^/session/[^/]+/element/[^/]+/attribute')],\n ['GET', new RegExp('^/session/[^/]+/element/[^/]+/displayed')],\n ['GET', new RegExp('^/session/[^/]+/element/[^/]+/enabled')],\n ['GET', new RegExp('^/session/[^/]+/element/[^/]+/location_in_view')],\n ['GET', new RegExp('^/session/[^/]+/element/[^/]+/name')],\n ['GET', new RegExp('^/session/[^/]+/element/[^/]+/screenshot')],\n ['GET', new RegExp('^/session/[^/]+/element/[^/]+/selected')],\n ['GET', new RegExp('^/session/[^/]+/ime/[^/]+')],\n ['GET', new RegExp('^/session/[^/]+/location')],\n ['GET', new RegExp('^/session/[^/]+/network_connection')],\n ['GET', new RegExp('^/session/[^/]+/screenshot')],\n ['GET', new RegExp('^/session/[^/]+/timeouts')],\n ['GET', new RegExp('^/session/[^/]+/url')],\n ['POST', new RegExp('^/session/[^/]+/[^/]+_alert$')],\n ['POST', new RegExp('^/session/[^/]+/actions')],\n ['POST', new RegExp('^/session/[^/]+/alert/[^/]+')],\n ['POST', new RegExp('^/session/[^/]+/app/[^/]')],\n ['POST', new RegExp('^/session/[^/]+/appium/[^/]+/start_activity')],\n ['POST', new RegExp('^/session/[^/]+/appium/app/[^/]+')],\n ['POST', new RegExp('^/session/[^/]+/appium/compare_images')],\n ['POST', new RegExp('^/session/[^/]+/appium/device/(?!set_clipboard)[^/]+')],\n ['POST', new RegExp('^/session/[^/]+/appium/element/[^/]+/replace_value')],\n ['POST', new RegExp('^/session/[^/]+/appium/element/[^/]+/value')],\n ['POST', new RegExp('^/session/[^/]+/appium/getPerformanceData')],\n ['POST', new RegExp('^/session/[^/]+/appium/performanceData/types')],\n ['POST', new RegExp('^/session/[^/]+/appium/settings')],\n ['POST', new RegExp('^/session/[^/]+/appium/execute_driver')],\n ['POST', new RegExp('^/session/[^/]+/appium/start_recording_screen')],\n ['POST', new RegExp('^/session/[^/]+/appium/stop_recording_screen')],\n ['POST', new RegExp('^/session/[^/]+/appium/.*event')],\n ['POST', new RegExp('^/session/[^/]+/context')],\n ['POST', new RegExp('^/session/[^/]+/element')],\n ['POST', new RegExp('^/session/[^/]+/ime/[^/]+')],\n ['POST', new RegExp('^/session/[^/]+/keys')],\n ['POST', new RegExp('^/session/[^/]+/location')],\n ['POST', new RegExp('^/session/[^/]+/network_connection')],\n ['POST', new RegExp('^/session/[^/]+/timeouts')],\n ['POST', new RegExp('^/session/[^/]+/touch/multi/perform')],\n ['POST', new RegExp('^/session/[^/]+/touch/perform')],\n ['POST', new RegExp('^/session/[^/]+/url')],\n\n // MJSONWP commands\n ['GET', new RegExp('^/session/[^/]+/log/types')],\n ['POST', new RegExp('^/session/[^/]+/execute')],\n ['POST', new RegExp('^/session/[^/]+/execute_async')],\n ['POST', new RegExp('^/session/[^/]+/log')],\n // W3C commands\n // For Selenium v4 (W3C does not have this route)\n ['GET', new RegExp('^/session/[^/]+/se/log/types')],\n ['GET', new RegExp('^/session/[^/]+/window/rect')],\n ['POST', new RegExp('^/session/[^/]+/execute/async')],\n ['POST', new RegExp('^/session/[^/]+/execute/sync')],\n // For Selenium v4 (W3C does not have this route)\n ['POST', new RegExp('^/session/[^/]+/se/log')],\n];\n\n// This is a set of methods and paths that we never want to proxy to Chromedriver.\nconst CHROME_NO_PROXY = [\n ['GET', new RegExp('^/session/[^/]+/appium')],\n ['GET', new RegExp('^/session/[^/]+/context')],\n ['GET', new RegExp('^/session/[^/]+/element/[^/]+/rect')],\n ['GET', new RegExp('^/session/[^/]+/orientation')],\n ['POST', new RegExp('^/session/[^/]+/appium')],\n ['POST', new RegExp('^/session/[^/]+/context')],\n ['POST', new RegExp('^/session/[^/]+/orientation')],\n ['POST', new RegExp('^/session/[^/]+/touch/multi/perform')],\n ['POST', new RegExp('^/session/[^/]+/touch/perform')],\n\n // this is needed to make the mobile: commands working in web context\n ['POST', new RegExp('^/session/[^/]+/execute$')],\n ['POST', new RegExp('^/session/[^/]+/execute/sync')],\n\n // MJSONWP commands\n ['GET', new RegExp('^/session/[^/]+/log/types$')],\n ['POST', new RegExp('^/session/[^/]+/log$')],\n // W3C commands\n // For Selenium v4 (W3C does not have this route)\n ['GET', new RegExp('^/session/[^/]+/se/log/types$')],\n // For Selenium v4 (W3C does not have this route)\n ['POST', new RegExp('^/session/[^/]+/se/log$')],\n];\n\nconst MEMOIZED_FUNCTIONS = [\n 'getStatusBarHeight',\n 'getDevicePixelRatio',\n];\n\nclass AndroidUiautomator2Driver extends BaseDriver {\n\n static newMethodMap = newMethodMap;\n\n constructor (opts = {}, shouldValidateCaps = true) {\n // `shell` overwrites adb.shell, so remove\n delete opts.shell;\n\n super(opts, shouldValidateCaps);\n this.locatorStrategies = [\n 'xpath',\n 'id',\n 'class name',\n 'accessibility id',\n 'css selector',\n '-android uiautomator'\n ];\n this.desiredCapConstraints = desiredCapConstraints;\n this.uiautomator2 = null;\n this.jwpProxyActive = false;\n this.jwpProxyAvoid = NO_PROXY;\n this.apkStrings = {}; // map of language -> strings obj\n\n this.settings = new DeviceSettings({ignoreUnimportantViews: false, allowInvisibleElements: false},\n this.onSettingsUpdate.bind(this));\n // handle webview mechanics from AndroidDriver\n this.chromedriver = null;\n this.sessionChromedrivers = {};\n\n // memoize functions here, so that they are done on a per-instance basis\n for (const fn of MEMOIZED_FUNCTIONS) {\n this[fn] = _.memoize(this[fn]);\n }\n }\n\n validateDesiredCaps (caps) {\n return super.validateDesiredCaps(caps) && androidHelpers.validateDesiredCaps(caps);\n }\n\n async createSession (...args) {\n try {\n // TODO handle otherSessionData for multiple sessions\n let [sessionId, caps] = await super.createSession(...args);\n\n let serverDetails = {\n platform: 'LINUX',\n webStorageEnabled: false,\n takesScreenshot: true,\n javascriptEnabled: true,\n databaseEnabled: false,\n networkConnectionEnabled: true,\n locationContextEnabled: false,\n warnings: {},\n desired: this.caps,\n };\n\n this.caps = Object.assign(serverDetails, this.caps);\n\n this.curContext = this.defaultContextName();\n\n let defaultOpts = {\n fullReset: false,\n autoLaunch: true,\n adbPort: DEFAULT_ADB_PORT,\n androidInstallTimeout: 90000\n };\n _.defaults(this.opts, defaultOpts);\n\n if (this.isChromeSession) {\n this.log.info(\"We're going to run a Chrome-based session\");\n let {pkg, activity} = helpers.getChromePkg(this.opts.browserName);\n this.opts.appPackage = this.caps.appPackage = pkg;\n this.opts.appActivity = this.caps.appActivity = activity;\n this.log.info(`Chrome-type package and activity are ${pkg} and ${activity}`);\n }\n\n if (this.opts.reboot) {\n this.setAvdFromCapabilities(caps);\n }\n\n if (this.opts.app) {\n // find and copy, or download and unzip an app url or path\n this.opts.app = await this.helpers.configureApp(this.opts.app, [APK_EXTENSION, APKS_EXTENSION]);\n await this.checkAppPresent();\n } else if (this.opts.appPackage) {\n // the app isn't an actual app file but rather something we want to\n // assume is on the device and just launch via the appPackage\n this.log.info(`Starting '${this.opts.appPackage}' directly on the device`);\n } else {\n this.log.info(`Neither 'app' nor 'appPackage' was set. Starting UiAutomator2 ` +\n 'without the target application');\n }\n this.opts.adbPort = this.opts.adbPort || DEFAULT_ADB_PORT;\n\n await this.startUiAutomator2Session();\n await this.fillDeviceDetails();\n if (this.opts.mjpegScreenshotUrl) {\n this.log.info(`Starting MJPEG stream reading URL: '${this.opts.mjpegScreenshotUrl}'`);\n this.mjpegStream = new mjpeg.MJpegStream(this.opts.mjpegScreenshotUrl);\n await this.mjpegStream.start();\n }\n return [sessionId, this.caps];\n } catch (e) {\n await this.deleteSession();\n throw e;\n }\n }\n\n async fillDeviceDetails () {\n this.caps.pixelRatio = await this.getDevicePixelRatio();\n this.caps.statBarHeight = await this.getStatusBarHeight();\n this.caps.viewportRect = await this.getViewPortRect();\n }\n\n get driverData () {\n // TODO fill out resource info here\n return {};\n }\n\n async getSession () {\n let sessionData = await super.getSession();\n this.log.debug('Getting session details from server to mix in');\n let uia2Data = await this.uiautomator2.jwproxy.command('/', 'GET', {});\n return Object.assign({}, sessionData, uia2Data);\n }\n\n isEmulator () {\n return helpers.isEmulator(this.adb, this.opts);\n }\n\n setAvdFromCapabilities (caps) {\n if (this.opts.avd) {\n this.log.info('avd name defined, ignoring device name and platform version');\n } else {\n if (!caps.deviceName) {\n this.log.errorAndThrow('avd or deviceName should be specified when reboot option is enables');\n }\n if (!caps.platformVersion) {\n this.log.errorAndThrow('avd or platformVersion should be specified when reboot option is enabled');\n }\n let avdDevice = caps.deviceName.replace(/[^a-zA-Z0-9_.]/g, '-');\n this.opts.avd = `${avdDevice}__${caps.platformVersion}`;\n }\n }\n\n async allocateSystemPort () {\n const forwardPort = async (localPort) => {\n this.log.debug(`Forwarding UiAutomator2 Server port ${DEVICE_PORT} to local port ${localPort}`);\n if ((await checkPortStatus(localPort, LOCALHOST_IP4)) === 'open') {\n this.log.errorAndThrow(`UiAutomator2 Server cannot start because the local port #${localPort} is busy. ` +\n `Make sure the port you provide via 'systemPort' capability is not occupied. ` +\n `This situation might often be a result of an inaccurate sessions management, e.g. ` +\n `old automation sessions on the same device must always be closed before starting new ones.`);\n }\n await this.adb.forwardPort(localPort, DEVICE_PORT);\n };\n\n if (this.opts.systemPort) {\n this._hasSystemPortInCaps = true;\n return await forwardPort(this.opts.systemPort);\n }\n\n await DEVICE_PORT_ALLOCATION_GUARD(async () => {\n const [startPort, endPort] = DEVICE_PORT_RANGE;\n try {\n this.opts.systemPort = await findAPortNotInUse(startPort, endPort);\n } catch (e) {\n this.log.errorAndThrow(\n `Cannot find any free port in range ${startPort}..${endPort}}. ` +\n `Please set the available port number by providing the systemPort capability or ` +\n `double check the processes that are locking ports within this range and terminate ` +\n `these which are not needed anymore`);\n }\n await forwardPort(this.opts.systemPort);\n });\n }\n\n async releaseSystemPort () {\n if (!this.opts.systemPort || !this.adb) {\n return;\n }\n\n if (this._hasSystemPortInCaps) {\n await this.adb.removePortForward(this.opts.systemPort);\n } else {\n await DEVICE_PORT_ALLOCATION_GUARD(async () => await this.adb.removePortForward(this.opts.systemPort));\n }\n }\n\n async allocateMjpegServerPort () {\n if (this.opts.mjpegServerPort) {\n this.log.debug(`MJPEG broadcasting requested, forwarding MJPEG server port ${MJPEG_SERVER_DEVICE_PORT} ` +\n `to local port ${this.opts.mjpegServerPort}`);\n await this.adb.forwardPort(this.opts.mjpegServerPort, MJPEG_SERVER_DEVICE_PORT);\n }\n }\n\n async releaseMjpegServerPort () {\n if (this.opts.mjpegServerPort) {\n await this.adb.removePortForward(this.opts.mjpegServerPort);\n }\n }\n\n async startUiAutomator2Session () {\n // get device udid for this session\n let {udid, emPort} = await helpers.getDeviceInfoFromCaps(this.opts);\n this.opts.udid = udid;\n this.opts.emPort = emPort;\n\n // now that we know our java version and device info, we can create our\n // ADB instance\n this.adb = await androidHelpers.createADB(this.opts);\n\n const apiLevel = await this.adb.getApiLevel();\n\n if (apiLevel < 21) {\n this.log.errorAndThrow('UIAutomator2 is only supported since Android 5.0 (Lollipop). ' +\n 'You could still use other supported backends in order to automate older Android versions.');\n }\n\n if (apiLevel >= 28) { // Android P\n this.log.info('Relaxing hidden api policy');\n await this.adb.setHiddenApiPolicy('1', !!this.opts.ignoreHiddenApiPolicyError);\n }\n\n // check if we have to enable/disable gps before running the application\n if (util.hasValue(this.opts.gpsEnabled)) {\n if (this.isEmulator()) {\n this.log.info(`Trying to ${this.opts.gpsEnabled ? 'enable' : 'disable'} gps location provider`);\n await this.adb.toggleGPSLocationProvider(this.opts.gpsEnabled);\n } else {\n this.log.warn(`Sorry! 'gpsEnabled' capability is only available for emulators`);\n }\n }\n\n // get appPackage et al from manifest if necessary\n const appInfo = await helpers.getLaunchInfo(this.adb, this.opts);\n // and get it onto our 'opts' object so we use it from now on\n Object.assign(this.opts, appInfo || {});\n\n // set actual device name, udid, platform version, screen size, screen density, model and manufacturer details\n this.caps.deviceName = this.adb.curDeviceId;\n this.caps.deviceUDID = this.opts.udid;\n\n // start an avd, set the language/locale, pick an emulator, etc...\n // TODO with multiple devices we'll need to parameterize this\n await helpers.initDevice(this.adb, this.opts);\n\n // Prepare the device by forwarding the UiAutomator2 port\n // This call mutates this.opts.systemPort if it is not set explicitly\n await this.allocateSystemPort();\n\n // Prepare the device by forwarding the UiAutomator2 MJPEG server port (if\n // applicable)\n await this.allocateMjpegServerPort();\n\n // set up the modified UiAutomator2 server etc\n await this.initUiAutomator2Server();\n\n // Should be after installing io.appium.settings in helpers.initDevice\n if (this.opts.disableWindowAnimation && (await this.adb.getApiLevel() < 26)) { // API level 26 is Android 8.0.\n // Granting android.permission.SET_ANIMATION_SCALE is necessary to handle animations under API level 26\n // Read https://github.com/appium/appium/pull/11640#issuecomment-438260477\n // `--no-window-animation` works over Android 8 to disable all of animations\n if (await this.adb.isAnimationOn()) {\n this.log.info('Disabling animation via io.appium.settings');\n await this.adb.setAnimationState(false);\n this._wasWindowAnimationDisabled = true;\n } else {\n this.log.info('Window animation is already disabled');\n }\n }\n\n // set up app under test\n // prepare our actual AUT, get it on the device, etc...\n await this.initAUT();\n\n // Adding AUT package name in the capabilities if package name not exist in caps\n if (!this.caps.appPackage && appInfo) {\n this.caps.appPackage = appInfo.appPackage;\n }\n\n // launch UiAutomator2 and wait till its online and we have a session\n await this.uiautomator2.startSession(this.caps);\n\n await this.addDeviceInfoToCaps();\n\n // Unlock the device after the session is started.\n if (!this.opts.skipUnlock) {\n // unlock the device to prepare it for testing\n await helpers.unlock(this, this.adb, this.caps);\n } else {\n this.log.debug(`'skipUnlock' capability set, so skipping device unlock`);\n }\n\n if (this.isChromeSession) { // start a chromedriver session\n await this.startChromeSession(this);\n } else if (this.opts.autoLaunch && this.opts.appPackage) {\n await this.ensureAppStarts();\n }\n\n // if the initial orientation is requested, set it\n if (util.hasValue(this.opts.orientation)) {\n this.log.debug(`Setting initial orientation to '${this.opts.orientation}'`);\n await this.setOrientation(this.opts.orientation);\n }\n\n // if we want to immediately get into a webview, set our context\n // appropriately\n if (this.opts.autoWebview) {\n const viewName = this.defaultWebviewName();\n const timeout = this.opts.autoWebviewTimeout || 2000;\n this.log.info(`Setting auto webview to context '${viewName}' with timeout ${timeout}ms`);\n await retryInterval(timeout / 500, 500, this.setContext.bind(this), viewName);\n }\n\n // now that everything has started successfully, turn on proxying so all\n // subsequent session requests go straight to/from uiautomator2\n this.jwpProxyActive = true;\n }\n\n async addDeviceInfoToCaps () {\n const {\n apiVersion,\n platformVersion,\n manufacturer,\n model,\n realDisplaySize,\n displayDensity,\n } = await this.mobileGetDeviceInfo();\n this.caps.deviceApiLevel = parseInt(apiVersion, 10);\n this.caps.platformVersion = platformVersion;\n this.caps.deviceScreenSize = realDisplaySize;\n this.caps.deviceScreenDensity = displayDensity;\n this.caps.deviceModel = model;\n this.caps.deviceManufacturer = manufacturer;\n }\n\n async initUiAutomator2Server () {\n // broken out for readability\n const uiautomator2Opts = {\n host: this.opts.remoteAdbHost || this.opts.host || LOCALHOST_IP4,\n systemPort: this.opts.systemPort,\n devicePort: DEVICE_PORT,\n adb: this.adb,\n apk: this.opts.app,\n tmpDir: this.opts.tmpDir,\n appPackage: this.opts.appPackage,\n appActivity: this.opts.appActivity,\n disableWindowAnimation: !!this.opts.disableWindowAnimation,\n disableSuppressAccessibilityService: this.opts.disableSuppressAccessibilityService,\n readTimeout: this.opts.uiautomator2ServerReadTimeout,\n };\n // now that we have package and activity, we can create an instance of\n // uiautomator2 with the appropriate options\n this.uiautomator2 = new UiAutomator2Server(this.log, uiautomator2Opts);\n this.proxyReqRes = this.uiautomator2.proxyReqRes.bind(this.uiautomator2);\n this.proxyCommand = this.uiautomator2.proxyCommand.bind(this.uiautomator2);\n\n if (this.opts.skipServerInstallation) {\n this.log.info(`'skipServerInstallation' is set. Skipping UIAutomator2 server installation.`);\n } else {\n await this.uiautomator2.installServerApk(this.opts.uiautomator2ServerInstallTimeout);\n try {\n await this.adb.addToDeviceIdleWhitelist(\n SETTINGS_HELPER_PKG_ID, SERVER_PACKAGE_ID, SERVER_TEST_PACKAGE_ID,\n );\n } catch (e) {\n this.log.warn(`Cannot add server packages to the Doze whitelist. Original error: ` +\n (e.stderr || e.message));\n }\n }\n }\n\n async initAUT () {\n // Uninstall any uninstallOtherPackages which were specified in caps\n if (this.opts.uninstallOtherPackages) {\n await helpers.uninstallOtherPackages(\n this.adb,\n helpers.parseArray(this.opts.uninstallOtherPackages),\n [SETTINGS_HELPER_PKG_ID, SERVER_PACKAGE_ID, SERVER_TEST_PACKAGE_ID]\n );\n }\n\n // Install any \"otherApps\" that were specified in caps\n if (this.opts.otherApps) {\n let otherApps;\n try {\n otherApps = helpers.parseArray(this.opts.otherApps);\n } catch (e) {\n this.log.errorAndThrow(`Could not parse \"otherApps\" capability: ${e.message}`);\n }\n otherApps = await B.all(otherApps\n .map((app) => this.helpers.configureApp(app, [APK_EXTENSION, APKS_EXTENSION])));\n await helpers.installOtherApks(otherApps, this.adb, this.opts);\n }\n\n if (this.opts.app) {\n if (this.opts.noReset && !(await this.adb.isAppInstalled(this.opts.appPackage))\n || !this.opts.noReset) {\n if (!this.opts.noSign && !await this.adb.checkApkCert(this.opts.app, this.opts.appPackage, {\n requireDefaultCert: false,\n })) {\n await helpers.signApp(this.adb, this.opts.app);\n }\n if (!this.opts.skipUninstall) {\n await this.adb.uninstallApk(this.opts.appPackage);\n }\n await helpers.installApk(this.adb, this.opts);\n } else {\n this.log.debug('noReset has been requested and the app is already installed. Doing nothing');\n }\n } else {\n if (this.opts.fullReset) {\n this.log.errorAndThrow('Full reset requires an app capability, use fastReset if app is not provided');\n }\n this.log.debug('No app capability. Assuming it is already on the device');\n if (this.opts.fastReset && this.opts.appPackage) {\n await helpers.resetApp(this.adb, this.opts);\n }\n }\n }\n\n async ensureAppStarts () {\n // make sure we have an activity and package to wait for\n const appWaitPackage = this.opts.appWaitPackage || this.opts.appPackage;\n const appWaitActivity = this.opts.appWaitActivity || this.opts.appActivity;\n\n this.log.info(`Starting '${this.opts.appPackage}/${this.opts.appActivity} ` +\n `and waiting for '${appWaitPackage}/${appWaitActivity}'`);\n\n if (this.caps.androidCoverage) {\n this.log.info(`androidCoverage is configured. ` +\n ` Starting instrumentation of '${this.caps.androidCoverage}'...`);\n await this.adb.androidCoverage(this.caps.androidCoverage, appWaitPackage, appWaitActivity);\n return;\n }\n if (this.opts.noReset && !this.opts.forceAppLaunch\n && await this.adb.processExists(this.opts.appPackage)) {\n this.log.info(`'${this.opts.appPackage}' is already running and noReset is enabled. ` +\n `Set forceAppLaunch capability to true if the app must be forcefully restarted on session startup.`);\n return;\n }\n await this.adb.startApp({\n pkg: this.opts.appPackage,\n activity: this.opts.appActivity,\n action: this.opts.intentAction || 'android.intent.action.MAIN',\n category: this.opts.intentCategory || 'android.intent.category.LAUNCHER',\n flags: this.opts.intentFlags || '0x10200000', // FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_RESET_TASK_IF_NEEDED\n waitPkg: this.opts.appWaitPackage,\n waitActivity: this.opts.appWaitActivity,\n waitForLaunch: this.opts.appWaitForLaunch,\n waitDuration: this.opts.appWaitDuration,\n optionalIntentArguments: this.opts.optionalIntentArguments,\n stopApp: this.opts.forceAppLaunch || !this.opts.dontStopAppOnReset,\n retry: true,\n user: this.opts.userProfile,\n });\n }\n\n async deleteSession () {\n this.log.debug('Deleting UiAutomator2 session');\n\n const screenRecordingStopTasks = [async () => {\n if (!_.isEmpty(this._screenRecordingProperties)) {\n await this.stopRecordingScreen();\n }\n }, async () => {\n if (await this.mobileIsMediaProjectionRecordingRunning()) {\n await this.mobileStopMediaProjectionRecording();\n }\n }, async () => {\n if (!_.isEmpty(this._screenStreamingProps)) {\n await this.mobileStopScreenStreaming();\n }\n }];\n\n await androidHelpers.removeAllSessionWebSocketHandlers(this.server, this.sessionId);\n\n if (this.uiautomator2) {\n try {\n await this.stopChromedriverProxies();\n } catch (err) {\n this.log.warn(`Unable to stop ChromeDriver proxies: ${err.message}`);\n }\n if (this.jwpProxyActive) {\n try {\n await this.uiautomator2.deleteSession();\n } catch (err) {\n this.log.warn(`Unable to proxy deleteSession to UiAutomator2: ${err.message}`);\n }\n }\n this.uiautomator2 = null;\n }\n this.jwpProxyActive = false;\n\n if (this.adb) {\n await B.all(screenRecordingStopTasks.map((task) => {\n (async () => {\n try {\n await task();\n } catch (ign) {}\n })();\n }));\n\n if (this.caps.androidCoverage) {\n this.log.info('Shutting down the adb process of instrumentation...');\n await this.adb.endAndroidCoverage();\n // Use this broadcast intent to notify it's time to dump coverage to file\n if (this.caps.androidCoverageEndIntent) {\n this.log.info(`Sending intent broadcast '${this.caps.androidCoverageEndIntent}' at the end of instrumenting.`);\n await this.adb.broadcast(this.caps.androidCoverageEndIntent);\n } else {\n this.log.warn('No androidCoverageEndIntent is configured in caps. Possibly you cannot get coverage file.');\n }\n }\n if (this.opts.appPackage) {\n if (!this.isChromeSession && ((!this.opts.dontStopAppOnReset && !this.opts.noReset)\n || (this.opts.noReset && this.opts.shouldTerminateApp))) {\n try {\n await this.adb.forceStop(this.opts.appPackage);\n } catch (err) {\n this.log.warn(`Unable to force stop app: ${err.message}`);\n }\n }\n if (this.opts.fullReset && !this.opts.skipUninstall) {\n this.log.debug(`Capability 'fullReset' set to 'true', Uninstalling '${this.opts.appPackage}'`);\n try {\n await this.adb.uninstallApk(this.opts.appPackage);\n } catch (err) {\n this.log.warn(`Unable to uninstall app: ${err.message}`);\n }\n }\n }\n // This value can be true if test target device is <= 26\n if (this._wasWindowAnimationDisabled) {\n this.log.info('Restoring window animation state');\n await this.adb.setAnimationState(true);\n }\n await this.adb.stopLogcat();\n try {\n await this.releaseSystemPort();\n } catch (error) {\n this.log.warn(`Unable to remove system port forward: ${error.message}`);\n // Ignore, this block will also be called when we fall in catch block\n // and before even port forward.\n }\n try {\n await this.releaseMjpegServerPort();\n } catch (error) {\n this.log.warn(`Unable to remove MJPEG server port forward: ${error.message}`);\n // Ignore, this block will also be called when we fall in catch block\n // and before even port forward.\n }\n\n if (await this.adb.getApiLevel() >= 28) { // Android P\n this.log.info('Restoring hidden api policy to the device default configuration');\n await this.adb.setDefaultHiddenApiPolicy(!!this.opts.ignoreHiddenApiPolicyError);\n }\n\n if (this.opts.reboot) {\n let avdName = this.opts.avd.replace('@', '');\n this.log.debug(`Closing emulator '${avdName}'`);\n try {\n await this.adb.killEmulator(avdName);\n } catch (err) {\n this.log.warn(`Unable to close emulator: ${err.message}`);\n }\n }\n }\n if (this.mjpegStream) {\n this.log.info('Closing MJPEG stream');\n this.mjpegStream.stop();\n }\n await super.deleteSession();\n }\n\n async checkAppPresent () {\n this.log.debug('Checking whether app is actually present');\n if (!(await fs.exists(this.opts.app))) {\n this.log.errorAndThrow(`Could not find app apk at '${this.opts.app}'`);\n }\n }\n\n async onSettingsUpdate () {\n // intentionally do nothing here, since commands.updateSettings proxies\n // settings to the uiauto2 server already\n }\n\n // Need to override android-driver's version of this since we don't actually\n // have a bootstrap; instead we just restart adb and re-forward the UiAutomator2\n // port\n async wrapBootstrapDisconnect (wrapped) {\n await wrapped();\n await this.adb.restart();\n await this.allocateSystemPort();\n await this.allocateMjpegServerPort();\n }\n\n proxyActive (sessionId) {\n super.proxyActive(sessionId);\n\n // we always have an active proxy to the UiAutomator2 server\n return true;\n }\n\n canProxy (sessionId) {\n super.canProxy(sessionId);\n\n // we can always proxy to the uiautomator2 server\n return true;\n }\n\n getProxyAvoidList (sessionId) {\n super.getProxyAvoidList(sessionId);\n // we are maintaining two sets of NO_PROXY lists, one for chromedriver(CHROME_NO_PROXY)\n // and one for uiautomator2(NO_PROXY), based on current context will return related NO_PROXY list\n if (util.hasValue(this.chromedriver)) {\n // if the current context is webview(chromedriver), then return CHROME_NO_PROXY list\n this.jwpProxyAvoid = CHROME_NO_PROXY;\n } else {\n this.jwpProxyAvoid = NO_PROXY;\n }\n if (this.opts.nativeWebScreenshot) {\n this.jwpProxyAvoid = [...this.jwpProxyAvoid, ['GET', new RegExp('^/session/[^/]+/screenshot')]];\n }\n\n return this.jwpProxyAvoid;\n }\n\n get isChromeSession () {\n return helpers.isChromeBrowser(this.opts.browserName);\n }\n}\n\n// first add the android-driver commands which we will fall back to\nfor (let [cmd, fn] of _.toPairs(androidCommands)) {\n AndroidUiautomator2Driver.prototype[cmd] = fn;\n}\n\n// then overwrite with any uiautomator2-specific commands\nfor (let [cmd, fn] of _.toPairs(commands)) {\n AndroidUiautomator2Driver.prototype[cmd] = fn;\n}\n\nexport { AndroidUiautomator2Driver };\nexport default AndroidUiautomator2Driver;\n"],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}