appium 2.0.0-beta.7 → 2.0.0-beta.70

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 (206) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +149 -58
  3. package/build/lib/appium.d.ts +229 -0
  4. package/build/lib/appium.d.ts.map +1 -0
  5. package/build/lib/appium.js +678 -439
  6. package/build/lib/appium.js.map +1 -0
  7. package/build/lib/cli/args.d.ts +17 -0
  8. package/build/lib/cli/args.d.ts.map +1 -0
  9. package/build/lib/cli/args.js +263 -300
  10. package/build/lib/cli/args.js.map +1 -0
  11. package/build/lib/cli/driver-command.d.ts +102 -0
  12. package/build/lib/cli/driver-command.d.ts.map +1 -0
  13. package/build/lib/cli/driver-command.js +131 -81
  14. package/build/lib/cli/driver-command.js.map +1 -0
  15. package/build/lib/cli/extension-command.d.ts +402 -0
  16. package/build/lib/cli/extension-command.d.ts.map +1 -0
  17. package/build/lib/cli/extension-command.js +799 -383
  18. package/build/lib/cli/extension-command.js.map +1 -0
  19. package/build/lib/cli/extension.d.ts +23 -0
  20. package/build/lib/cli/extension.d.ts.map +1 -0
  21. package/build/lib/cli/extension.js +71 -60
  22. package/build/lib/cli/extension.js.map +1 -0
  23. package/build/lib/cli/parser.d.ts +84 -0
  24. package/build/lib/cli/parser.d.ts.map +1 -0
  25. package/build/lib/cli/parser.js +252 -148
  26. package/build/lib/cli/parser.js.map +1 -0
  27. package/build/lib/cli/plugin-command.d.ts +99 -0
  28. package/build/lib/cli/plugin-command.d.ts.map +1 -0
  29. package/build/lib/cli/plugin-command.js +125 -81
  30. package/build/lib/cli/plugin-command.js.map +1 -0
  31. package/build/lib/cli/utils.d.ts +29 -0
  32. package/build/lib/cli/utils.d.ts.map +1 -0
  33. package/build/lib/cli/utils.js +72 -51
  34. package/build/lib/cli/utils.js.map +1 -0
  35. package/build/lib/config-file.d.ts +100 -0
  36. package/build/lib/config-file.d.ts.map +1 -0
  37. package/build/lib/config-file.js +207 -0
  38. package/build/lib/config-file.js.map +1 -0
  39. package/build/lib/config.d.ts +49 -0
  40. package/build/lib/config.d.ts.map +1 -0
  41. package/build/lib/config.js +262 -223
  42. package/build/lib/config.js.map +1 -0
  43. package/build/lib/constants.d.ts +56 -0
  44. package/build/lib/constants.d.ts.map +1 -0
  45. package/build/lib/constants.js +73 -0
  46. package/build/lib/constants.js.map +1 -0
  47. package/build/lib/extension/driver-config.d.ts +82 -0
  48. package/build/lib/extension/driver-config.d.ts.map +1 -0
  49. package/build/lib/extension/driver-config.js +210 -0
  50. package/build/lib/extension/driver-config.js.map +1 -0
  51. package/build/lib/extension/extension-config.d.ts +270 -0
  52. package/build/lib/extension/extension-config.d.ts.map +1 -0
  53. package/build/lib/extension/extension-config.js +601 -0
  54. package/build/lib/extension/extension-config.js.map +1 -0
  55. package/build/lib/extension/index.d.ts +48 -0
  56. package/build/lib/extension/index.d.ts.map +1 -0
  57. package/build/lib/extension/index.js +105 -0
  58. package/build/lib/extension/index.js.map +1 -0
  59. package/build/lib/extension/manifest-migrations.d.ts +27 -0
  60. package/build/lib/extension/manifest-migrations.d.ts.map +1 -0
  61. package/build/lib/extension/manifest-migrations.js +134 -0
  62. package/build/lib/extension/manifest-migrations.js.map +1 -0
  63. package/build/lib/extension/manifest.d.ts +145 -0
  64. package/build/lib/extension/manifest.d.ts.map +1 -0
  65. package/build/lib/extension/manifest.js +528 -0
  66. package/build/lib/extension/manifest.js.map +1 -0
  67. package/build/lib/extension/package-changed.d.ts +11 -0
  68. package/build/lib/extension/package-changed.d.ts.map +1 -0
  69. package/build/lib/extension/package-changed.js +62 -0
  70. package/build/lib/extension/package-changed.js.map +1 -0
  71. package/build/lib/extension/plugin-config.d.ts +56 -0
  72. package/build/lib/extension/plugin-config.d.ts.map +1 -0
  73. package/build/lib/extension/plugin-config.js +102 -0
  74. package/build/lib/extension/plugin-config.js.map +1 -0
  75. package/build/lib/grid-register.d.ts +10 -0
  76. package/build/lib/grid-register.d.ts.map +1 -0
  77. package/build/lib/grid-register.js +122 -144
  78. package/build/lib/grid-register.js.map +1 -0
  79. package/build/lib/logger.d.ts +3 -0
  80. package/build/lib/logger.d.ts.map +1 -0
  81. package/build/lib/logger.js +5 -17
  82. package/build/lib/logger.js.map +1 -0
  83. package/build/lib/logsink.d.ts +4 -0
  84. package/build/lib/logsink.d.ts.map +1 -0
  85. package/build/lib/logsink.js +189 -184
  86. package/build/lib/logsink.js.map +1 -0
  87. package/build/lib/main.d.ts +62 -0
  88. package/build/lib/main.d.ts.map +1 -0
  89. package/build/lib/main.js +388 -234
  90. package/build/lib/main.js.map +1 -0
  91. package/build/lib/schema/arg-spec.d.ts +143 -0
  92. package/build/lib/schema/arg-spec.d.ts.map +1 -0
  93. package/build/lib/schema/arg-spec.js +164 -0
  94. package/build/lib/schema/arg-spec.js.map +1 -0
  95. package/build/lib/schema/cli-args.d.ts +19 -0
  96. package/build/lib/schema/cli-args.d.ts.map +1 -0
  97. package/build/lib/schema/cli-args.js +220 -0
  98. package/build/lib/schema/cli-args.js.map +1 -0
  99. package/build/lib/schema/cli-transformers.d.ts +5 -0
  100. package/build/lib/schema/cli-transformers.d.ts.map +1 -0
  101. package/build/lib/schema/cli-transformers.js +124 -0
  102. package/build/lib/schema/cli-transformers.js.map +1 -0
  103. package/build/lib/schema/index.d.ts +3 -0
  104. package/build/lib/schema/index.d.ts.map +1 -0
  105. package/build/lib/schema/index.js +19 -0
  106. package/build/lib/schema/index.js.map +1 -0
  107. package/build/lib/schema/keywords.d.ts +24 -0
  108. package/build/lib/schema/keywords.d.ts.map +1 -0
  109. package/build/lib/schema/keywords.js +128 -0
  110. package/build/lib/schema/keywords.js.map +1 -0
  111. package/build/lib/schema/schema.d.ts +260 -0
  112. package/build/lib/schema/schema.d.ts.map +1 -0
  113. package/build/lib/schema/schema.js +640 -0
  114. package/build/lib/schema/schema.js.map +1 -0
  115. package/build/lib/utils.d.ts +266 -0
  116. package/build/lib/utils.d.ts.map +1 -0
  117. package/build/lib/utils.js +349 -273
  118. package/build/lib/utils.js.map +1 -0
  119. package/build/types/cli.d.ts +134 -0
  120. package/build/types/cli.d.ts.map +1 -0
  121. package/build/types/cli.js +3 -0
  122. package/build/types/cli.js.map +1 -0
  123. package/build/types/index.d.ts +15 -0
  124. package/build/types/index.d.ts.map +1 -0
  125. package/build/types/index.js +19 -0
  126. package/build/types/index.js.map +1 -0
  127. package/build/types/manifest/base.d.ts +135 -0
  128. package/build/types/manifest/base.d.ts.map +1 -0
  129. package/build/types/manifest/base.js +3 -0
  130. package/build/types/manifest/base.js.map +1 -0
  131. package/build/types/manifest/index.d.ts +21 -0
  132. package/build/types/manifest/index.d.ts.map +1 -0
  133. package/build/types/manifest/index.js +42 -0
  134. package/build/types/manifest/index.js.map +1 -0
  135. package/build/types/manifest/v3.d.ts +139 -0
  136. package/build/types/manifest/v3.d.ts.map +1 -0
  137. package/build/types/manifest/v3.js +3 -0
  138. package/build/types/manifest/v3.js.map +1 -0
  139. package/build/types/manifest/v4.d.ts +139 -0
  140. package/build/types/manifest/v4.d.ts.map +1 -0
  141. package/build/types/manifest/v4.js +3 -0
  142. package/build/types/manifest/v4.js.map +1 -0
  143. package/driver.d.ts +1 -0
  144. package/driver.js +14 -0
  145. package/index.js +11 -0
  146. package/lib/appium.js +558 -186
  147. package/lib/cli/args.js +275 -407
  148. package/lib/cli/driver-command.js +132 -24
  149. package/lib/cli/extension-command.js +751 -272
  150. package/lib/cli/extension.js +47 -20
  151. package/lib/cli/parser.js +267 -95
  152. package/lib/cli/plugin-command.js +122 -22
  153. package/lib/cli/utils.js +24 -10
  154. package/lib/config-file.js +220 -0
  155. package/lib/config.js +243 -132
  156. package/lib/constants.js +79 -0
  157. package/lib/extension/driver-config.js +247 -0
  158. package/lib/extension/extension-config.js +709 -0
  159. package/lib/extension/index.js +116 -0
  160. package/lib/extension/manifest-migrations.js +136 -0
  161. package/lib/extension/manifest.js +580 -0
  162. package/lib/extension/package-changed.js +64 -0
  163. package/lib/extension/plugin-config.js +112 -0
  164. package/lib/grid-register.js +49 -35
  165. package/lib/logger.js +1 -2
  166. package/lib/logsink.js +59 -36
  167. package/lib/main.js +369 -104
  168. package/lib/schema/arg-spec.js +229 -0
  169. package/lib/schema/cli-args.js +241 -0
  170. package/lib/schema/cli-transformers.js +119 -0
  171. package/lib/schema/index.js +2 -0
  172. package/lib/schema/keywords.js +136 -0
  173. package/lib/schema/schema.js +725 -0
  174. package/lib/utils.js +289 -167
  175. package/package.json +84 -83
  176. package/plugin.d.ts +1 -0
  177. package/plugin.js +13 -0
  178. package/scripts/autoinstall-extensions.js +243 -0
  179. package/support.d.ts +1 -0
  180. package/support.js +13 -0
  181. package/tsconfig.json +25 -0
  182. package/types/cli.ts +193 -0
  183. package/types/index.ts +20 -0
  184. package/types/manifest/README.md +30 -0
  185. package/types/manifest/base.ts +158 -0
  186. package/types/manifest/index.ts +28 -0
  187. package/types/manifest/v3.ts +161 -0
  188. package/types/manifest/v4.ts +161 -0
  189. package/CHANGELOG.md +0 -3594
  190. package/bin/ios-webkit-debug-proxy-launcher.js +0 -71
  191. package/build/lib/cli/argparse-actions.js +0 -104
  192. package/build/lib/cli/npm.js +0 -200
  193. package/build/lib/cli/parser-helpers.js +0 -93
  194. package/build/lib/driver-config.js +0 -77
  195. package/build/lib/drivers.js +0 -99
  196. package/build/lib/extension-config.js +0 -253
  197. package/build/lib/plugin-config.js +0 -59
  198. package/build/lib/plugins.js +0 -14
  199. package/lib/cli/argparse-actions.js +0 -77
  200. package/lib/cli/npm.js +0 -175
  201. package/lib/cli/parser-helpers.js +0 -91
  202. package/lib/driver-config.js +0 -46
  203. package/lib/drivers.js +0 -84
  204. package/lib/extension-config.js +0 -209
  205. package/lib/plugin-config.js +0 -34
  206. package/lib/plugins.js +0 -10
package/CHANGELOG.md DELETED
@@ -1,3594 +0,0 @@
1
- CHANGES IN VERSION 1.19.0 (FROM 1.18.3)
2
- ===================================
3
-
4
- Appium 1.19.0 is a minor release
5
-
6
- ### Android General
7
-
8
- * Add capabilities:
9
- * `allowDelayAdb` to prevent `-delay-adb` command line option to detect emulator startup [#14773](https://github.com/appium/appium/issues/14773)
10
- * Add `mobile:` functions:
11
- * `mobile:getContexts` to get WebView details [appium-android-driver#662](https://github.com/appium/appium-android-driver/pull/662)
12
- * Accept Web Authentication routes (they are part of W3C) [appium-base-driver#433](https://github.com/appium/appium-base-driver/pull/433)
13
- * Change to enable `ensureWebviewsHavePages` by default [appium-android-driver#652](https://github.com/appium/appium-android-driver/pull/652)
14
- * Change to close pending requests on the server side if the server is terminated [appium-base-driver#424](https://github.com/appium/appium-base-driver/pull/424)
15
- * Fix CPU performance data parsing [appium-android-driver#659](https://github.com/appium/appium-android-driver/pull/659)
16
- * Fix possible memory leak [appium-base-driver#430](https://github.com/appium/appium-base-driver/pull/430)
17
- * Fix responses to unexpected server errors [appium-base-driver#432](https://github.com/appium/appium-base-driver/pull/432)
18
-
19
- ### Android(UIAutomator2)
20
-
21
- * Add `mobile:` functions:
22
- * `mobile:dragGesture`, `mobile:flingGesture`, `mobile:longClickGesture`, `mobile:pinchCloseGesture`, `mobile:pinchOpenGesture`, `mobile:swipeGesture` and `mobile:scrollGesture`: [Automating Mobile Gestures With UiAutomator2 Backend](https://appium.io/docs/en/writing-running-appium/android/android-mobile-gestures/)
23
- * Add css selector support [appium-uiautomator2-driver#410](https://github.com/appium/appium-uiautomator2-driver/pull/410)
24
- * `css selector` will be converted to `-android uiautomator` selector in UIAutomator2. Read [appium-uiautomator2-driver#410](https://github.com/appium/appium-uiautomator2-driver/pull/410) for more details.
25
- * Enhance XPath lookup performance [appium-uiautomator2-server#386](https://github.com/appium/appium-uiautomator2-server/pull/386)
26
- * Fix port guard logic to avoid port conflict [appium-uiautomator2-driver#409](https://github.com/appium/appium-uiautomator2-driver/pull/409)
27
-
28
- ### Android(Espresso)
29
-
30
- * Raise `InvalidContextError` error when the app under test stops because of instrumentation process crashes (appium-espresso-driver#591)[https://github.com/appium/appium-espresso-driver/pull/591]
31
- * Add a possibility to allow JSON formatted string as `espressoBuildConfig` capability [appium-espresso-driver#609](https://github.com/appium/appium-espresso-driver/pull/609)
32
- * Add `mobile:` functions:
33
- * `mobile:registerIdlingResources`, `mobile:unregisterIdlingResources` and `mobile:listIdlingResources` to customize idling resources [appium-espresso-driver#597](https://github.com/appium/appium-espresso-driver/pull/597)
34
- * Add a custom exception description, which helps to debug issues when the application under test is not idling long enough [appium-espresso-driver#589](https://github.com/appium/appium-espresso-driver/pull/589)
35
- * The `com.google.android.material` dependency became optional [appium-espresso-driver#616](https://github.com/appium/appium-espresso-driver/pull/616)
36
- * `espressoBuildConfig` now allows to prevent custom dependencies for both categories: `additionalAppDependencies` and `additionalAndroidTestDependencies`. Please check [caps](https://appium.io/docs/en/writing-running-appium/caps/).
37
- * `mobile:navigateTo` requires `com.google.android.material`, so please add `"espressoBuildConfig": "{\"additionalAndroidTestDependencies\":[\"com.google.android.material:material:1.2.1\"]}"` as your capabilities if needed
38
- * Fix to exclude transitive dependencies of espresso-contrib[appium-espresso-driver#596](https://github.com/appium/appium-espresso-driver/pull/596)
39
- * Fix to be able to build with SDK 29 [appium-espresso-driver#604](https://github.com/appium/appium-espresso-driver/pull/604)
40
-
41
- ### iOS(general)
42
-
43
- * Improve the performane of simulator state state checks [appium-ios-simulator#284](https://github.com/appium/appium-ios-simulator/pull/284)
44
- * Fix granting access to Calendar on Xcode 11.4 and later [appium-ios-simulator#288](https://github.com/appium/appium-ios-simulator/pull/288)
45
- * Adjust the decimal separator in the Simulator location setting script according to system locale settings [appium-ios-simulator#295](https://github.com/appium/appium-ios-simulator/pull/295)
46
-
47
- ### iOS(XCUITest)
48
-
49
- * Add capabilities:
50
- * `simulatorDevicesSetPath` allows to set an alternative path to a Simulator devices set [appium-ios-simulator#290](https://github.com/appium/appium-ios-simulator/pull/290)
51
- * `allowProvisioningDeviceRegistration` adds `-allowProvisioningUpdates` and `-allowProvisioningDeviceRegistration` flag to the list of xcodebuild arguments [appium-xcuitest-driver#1241](https://github.com/appium/appium-xcuitest-driver/pull/1241)
52
- * Add mobile functions:
53
- * `mobile:resetPermission` to reset all previous allowed or denied permissions for the application under test. It requires Xcode 11.4 and later [https://github.com/appium/appium-xcuitest-driver#1239](https://github.com/appium/appium-xcuitest-driver/pull/1239), [WebDriverAgent#392](https://github.com/appium/WebDriverAgent/pull/392)
54
- * Add `velocity` argument for over Xcode 11.4 in `mobile:swipe` [appium#14793](https://github.com/appium/appium/pull/14793)
55
- * Enhance performance
56
- * e.g. improve taking snapshot to get elements [WebDriverAgent#393](https://github.com/appium/WebDriverAgent/pull/393)
57
- * Fix alert handling in some cases [WebDriverAgent#400](https://github.com/appium/WebDriverAgent/pull/400)
58
-
59
- ### Flutter
60
-
61
- The version is `0.0.25`
62
-
63
- ### You.i Engine Driver
64
-
65
- The version is `1.2.7`
66
-
67
-
68
- CHANGES IN VERSION 1.18.2 and 1.18.3 (FROM 1.18.1)
69
- ===================================
70
-
71
- Appium 1.18.2 and 1.18.3 are patch releases
72
-
73
- * Supports Xcode 12 + iOS 14
74
-
75
- ### iOS(XCUITest)
76
- * Allow to input text by send keys API without focus check for newer Xcode versions [WebDriverAgent#379](https://github.com/appium/WebDriverAgent/pull/379)
77
- * Add supports `xcrun xctrace` instead of `instruments` command for Xcode 12+ [appium-xcuitest-driver#1223](https://github.com/appium/appium-xcuitest-driver/pull/1223)
78
-
79
-
80
- CHANGES IN VERSION 1.18.1 (FROM 1.18.0)
81
- ===================================
82
-
83
- Appium 1.18.1 is a patch release
84
-
85
- #### Android General
86
- * Fix to properly clean up forwarded ports if parallel sessions are running [appium-chromedriver#183](https://github.com/appium/appium-chromedriver/pull/183)
87
- * Fix to avoid a redundant Chromedriver download operation if a matching driver is already present [appium-chromedriver#186](https://github.com/appium/appium-chromedriver/pull/186)
88
-
89
- #### Android (UiAutomator2)
90
- * Fix to return a proper response for missing route [appium/appium-uiautomator2-server#373](https://github.com/appium/appium-uiautomator2-server/pull/373)
91
- * Fix to allow double values as touch action coordinates [ appium/appium-uiautomator2-server#372](https://github.com/appium/appium-uiautomator2-server/pull/372)
92
- * Fix [#14586](https://github.com/appium/appium/issues/14586) which might affect XPath locators executed on elemetns, retrieved from nested lookup requests [appium/appium-uiautomator2-server#372](https://github.com/appium/appium-uiautomator2-server/pull/371)
93
- * A known issue in 1.18.0
94
-
95
- CHANGES IN VERSION 1.18.0 (FROM 1.17.1)
96
- ===================================
97
-
98
- Appium 1.18.0 is a minor release
99
-
100
- #### General
101
- * Add `score` attribute for ImageElement [appium-base-driver#396](https://github.com/appium/appium-base-driver/pull/396)
102
- * Add a route to be able to execute Chrome DevTools commands to downstream drivers [appium-base-driver#405](https://github.com/appium/appium-base-driver/pull/405)
103
- * e.g. Clients can send `/session/:sessionId/goog/cdp/execute` command to Chromedriver
104
- * Fix socket leak by handling connections in a shared pool [appium-base-driver#416](https://github.com/appium/appium-base-driver/pull/416)
105
- * Fix to encode filenames with UTF-8 while extracting `.ipa` packages [appium-base-driver#419](https://github.com/appium/appium-base-driver/pull/419)
106
- * The change fixes `.ipa` packages deployment that contain file names containing non-ASCII characters like [this issue](https://github.com/appium/appium/issues/14100)
107
-
108
- #### Android General
109
- * Add capabilities:
110
- * `mockLocationApp` to make location mock configurable [appium-android-driver#632](https://github.com/appium/appium-android-driver/pull/632)
111
- * `logcatFormat`, `logcatFilterSpecs` to allow logcat output format customization [appium-adb#528](https://github.com/appium/appium-adb/pull/528)
112
- * `ignoreHiddenApiPolicyError` to ignore permission error when hidden api policy change happens [appium-adb#507](https://github.com/appium/appium-adb/pull/507)
113
- * Add `mobile:` functions:
114
- * `mobile: getDeviceTime` to get the device time [appium-android-driver#623](https://github.com/appium/appium-android-driver/pull/623)
115
- * `mobile: execEmuConsoleCommand` to send [emulator console commands](https://developer.android.com/studio/run/emulator-console) [appium-android-driver#517](https://github.com/appium/appium-adb/pull/517) [#630](https://github.com/appium/appium-android-driver/pull/630)
116
- * `mobile: deleteFile` to delete a file [appium-android-driver#634](https://github.com/appium/appium-android-driver/pull/634)
117
- * `mobile: startService` and `mobile: stopService` to start or stop services via [adb shell commands](https://stackoverflow.com/questions/7415997/how-to-start-and-stop-android-service-from-a-adb-shell) [appium-android-driver#647](https://github.com/appium/appium-android-driver/pull/647)
118
- * Add including native context log for getLog command [appium-android-driver#646](https://github.com/appium/appium-android-driver/pull/646)
119
- * Fix tapping by element coordinate [appium-android-driver#355](https://github.com/appium/appium-android-driver/pull/355)
120
-
121
- #### Android (UiAutomator2)
122
- * Add capabilities:
123
- * `disableSuppressAccessibilityService` to control [FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES]((https://developer.android.com/reference/android/app/UiAutomation#FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES)) flag [appium-uiautomator2-driver#376](https://github.com/appium/appium-uiautomator2-driver/pull/376)
124
- waitForLaunch
125
- * `mjpegServerPort` to customize MJPEG server port [appium-uiautomator2-driver#386](https://github.com/appium/appium-uiautomator2-driver/pull/386)
126
- * Add `mobile:` functions:
127
- * `mobile: sensorSet` to set sensor [appium-uiautomator2-driver#378](https://github.com/appium/appium-uiautomator2-driver/pull/378)
128
- * `mobile: scroll` to allow to scroll action in some ways. Please read [appium-uiautomator2-driver](https://github.com/appium/appium-uiautomator2-driver/blob/master/lib/commands/general.js) for more details. [appium-uiautomator2-driver#385](https://github.com/appium/appium-uiautomator2-driver/pull/385)
129
- * `mobile: deepLink` to send deeplink command with `waitForLaunch` option to handle the wait for logic [appium-uiautomator2-driver#389](https://github.com/appium/appium-uiautomator2-driver/pull/389)
130
- * `mobile: viewportRect` to return view port rectangle [appium-uiautomator2-driver#404](https://github.com/appium/appium-uiautomator2-driver/pull/404)
131
- * Known issue
132
- * [#14586](https://github.com/appium/appium/issues/14586): [Root element fix](https://github.com/appium/appium-uiautomator2-server/pull/363) might affect XPath locators executed on elements, retrieved from nested lookup requests (the document root for such elements is now the element itself rather than a fake `hierarchy` root)
133
-
134
- #### Android (Espresso)
135
- * Add capabilities:
136
- * `disableSuppressAccessibilityService` to control [FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES]((https://developer.android.com/reference/android/app/UiAutomation#FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES)) flag [appium-espresso-driver#559](https://github.com/appium/appium-espresso-driver/pull/559)
137
- * `appLocale` to set [Locale](https://developer.android.com/reference/java/util/Locale) for [the target context](https://developer.android.com/reference/androidx/test/core/app/ApplicationProvider#getApplicationContext()) [appium-espresso-driver#580](https://github.com/appium/appium-espresso-driver/pull/580)
138
- * Add `mobile:` functions:
139
- * `mobile: sensorSet` to set sensor [appium-espresso-driver](https://github.com/appium/appium-espresso-driver/pull/560)
140
-
141
- ### iOS (XCUITest)
142
- * Add Xcode 12 beta and iOS 14 support
143
- * Add settings:
144
- * `boundElementsByIndex` for bounding strategy to lookup elements [WebDriverAgent#357](https://github.com/appium/WebDriverAgent/pull/357)
145
- * Add XCTest `mobile:` functions: [appium-xcuitest-driver#1205](https://github.com/appium/appium-xcuitest-driver/pull/1205). Please read [test code](https://github.com/appium/appium-xcuitest-driver/blob/master/test/functional/device/xctest-e2e-specs.js) as an example.
146
- * `mobile: runXCTest` to run XCTest bundle
147
- * `mobile: installXCTestBundle` to install the xctest bundle
148
- * `mobile: listXCTestBundles` to get list of xctests within bundle
149
- * `mobile: listXCTestsInTestBundle` to return the list of XCTest bundles
150
- * Add audio recording for simulators and real devices [appium-xcuitest-driver#1207](https://github.com/appium/appium-xcuitest-driver/pull/1207)
151
- * Read [Audio Capture From iOS Simulators and Real Devices](https://appium.io/docs/en/writing-running-appium/ios/audio-capture/)
152
- * Add prebuilt WebDriverAgentRunner snapshots to speed up tests execution on iOS Simulator in `appium-webdriveragend` npm package [WebDriverAgent#331](https://github.com/appium/WebDriverAgent/pull/331)
153
- * The path is `appium/node_modules/appium-webdriveragend/WebDriverAgentRunner-Runner.app.zip`
154
- * The usage is:
155
- ```bash
156
- idb install /WebDriverAgentRunner-Runner.app --udid <device-udid>
157
- idb launch com.facebook.WebDriverAgentRunner.xctrunner
158
- ```
159
- * Fix a memory leak by removing unnecessary dependencies [WebDriverAgent#348](https://github.com/appium/WebDriverAgent/pull/348) [WebDriverAgent#350](https://github.com/appium/WebDriverAgent/pull/350) [WebDriverAgent#351](https://github.com/appium/WebDriverAgent/pull/351)
160
- * Fix respecting `webDriverAgentUrl` in favor of `wdaLocalPort` and `wdaBaseUrl` for real devices [WebDriverAgent#342](https://github.com/appium/WebDriverAgent/pull/342)
161
- * Fix ignoring the case where process locking the socket is not alive [WebDriverAgent#339](https://github.com/appium/WebDriverAgent/pull/339)
162
- * Fix to improve alert buttons detection [WebDriverAgent#322](https://github.com/appium/WebDriverAgent/pull/322)
163
-
164
- ### Windows
165
- * Add video recording [appium-windows-driver#66](https://github.com/appium/appium-windows-driver/pull/66)
166
- * Add findByImage [appium-windows-driver#67](https://github.com/appium/appium-windows-driver/pull/67)
167
-
168
-
169
- CHANGES IN VERSION 1.17.1 (FROM 1.17.0)
170
- ===================================
171
-
172
- Appium 1.17.1 is a patch release
173
-
174
- ### iOS (XCUITest)
175
- * feature: get idb working under launchWithIDB cap (https://github.com/appium/appium-xcuitest-driver/pull/1193)
176
- * feature: Add mobile command to get device time (https://github.com/appium/appium-xcuitest-driver/pull/1190)
177
- * feature: Add mobile command for tapWithNumberOfTaps (https://github.com/appium/appium-xcuitest-driver/pull/1184)
178
- * fix: datetime retrieval for real devices (https://github.com/appium/appium-xcuitest-driver/pull/1189) (https://github.com/appium/appium-xcuitest-driver/pull/1192)
179
-
180
- ## iOS (Web)
181
- * feature: allow safari alert with block/allow buttons to be handled (https://github.com/appium/appium-xcuitest-driver/pull/1185)
182
- * fix: cookie functions should not get proxied to wda ever (https://github.com/appium/appium-xcuitest-driver/pull/1182)
183
- * fix: wait for atom finish before checking for alerts (https://github.com/appium/appium-xcuitest-driver/pull/1183)
184
- * fix: properly handle promise during wait for atom (https://github.com/appium/appium-xcuitest-driver/pull/1187)
185
- * fix: do not send Target.exists on iOS 13.4 (https://github.com/appium/appium-remote-debugger/pull/219)
186
-
187
-
188
- CHANGES IN VERSION 1.17.0 (FROM 1.16.0)
189
- ===================================
190
-
191
- Appium 1.17.0 is a minor release.
192
-
193
- #### General
194
- * Active driver sessions are now properly cleaned up upon main Appium process termination (https://github.com/appium/appium/pull/13913)
195
- * Preliminary support for iOS 13.4
196
-
197
- #### iOS General
198
-
199
- #### iOS (XCUITest)
200
- * Fix app installation on real devices (https://github.com/appium/appium-xcuitest-driver/pull/1139) (https://github.com/appium/appium-xcuitest-driver/pull/1138) (https://github.com/appium/appium-xcuitest-driver/pull/1140) (https://github.com/appium/appium-xcuitest-driver/pull/1152) (https://github.com/appium/appium-ios-device/pull/67)
201
- * Fix temporary log file to be more efficient (https://github.com/appium/appium-xcuitest-driver/pull/1147)
202
- * Fix port cleanup during shutdown (https://github.com/appium/appium-xcuitest-driver/pull/1153)
203
- * Fix starting of `idb` when used (https://github.com/appium/appium-idb/pull/20)
204
- * Add `screenshotOrientation` as Settings API to customize screenshot orientation (https://github.com/appium/WebDriverAgent/pull/277)
205
- * Capabilities:
206
- * `simulatorStartupTimeout` change the default timeout for simulator startup (https://github.com/appium/appium-xcuitest-driver/pull/1163)
207
- * `simulatorPasteboardAutomaticSync` turn on/off simulator pasteboard synching at launch (https://github.com/appium/appium-xcuitest-driver/pull/1168)
208
- * `simulatorTracePointer` turn on/off pointer highlighting in simulators (https://github.com/appium/appium-xcuitest-driver/pull/1169)
209
- * Add `snapshotMaxDepth` as Settings API to restrict the depth of getting the elements source tree (https://github.com/appium/WebDriverAgent/pull/273)
210
- * Add `mobile:` functions for new `simctl` functionality in Xcode 11.4+ (https://github.com/appium/appium-xcuitest-driver/pull/1162) (https://github.com/appium/appium-ios-simulator/pull/260) (https://github.com/appium/node-simctl/pull/96)
211
- * `mobile: setPermission`
212
- * `mobile: getAppearance`
213
- * `mobile: setAppearance`
214
- * Webviews/Safari:
215
- * Add webview bundle identifier to data returned with `fullContextList`
216
- * Add `waitForWebviewMs` option to `mobile:getContexts` endpoint, to block for a period while waiting for webview report (https://github.com/appium/appium-xcuitest-driver/pull/1135)
217
- * Allow SafariViewController webviews to be reached automatically (https://github.com/appium/appium-remote-debugger/pull/189) (https://github.com/appium/appium-remote-debugger/pull/197)
218
- * Fix asynchronous execution in webview context for iOS 12.1 and below (https://github.com/appium/appium-remote-debugger/pull/199)
219
- * Fix handling of React components whose state is handled by React (https://github.com/appium/appium-remote-debugger/pull/202)
220
- * Fix webviews for iOS 13.3 and 13.4 (https://github.com/appium/appium-remote-debugger/pull/203) (https://github.com/appium/appium-remote-debugger/pull/204) (https://github.com/appium/appium-remote-debugger/pull/205) (https://github.com/appium/appium-remote-debugger/commit/e067f0eab012b5ef67f1ce67eb85479c4abe440b) (https://github.com/appium/appium-xcuitest-driver/pull/1174)
221
- * Fix handling of alerts opened from webview (https://github.com/appium/appium-xcuitest-driver/pull/1176)
222
-
223
- #### Android General
224
- * Add `mobile:` functions:
225
- * `mobile: listSms` to get the list of SMS (https://github.com/appium/appium-android-driver/pull/602 https://github.com/appium/appium-espresso-driver/pull/548)
226
- * `mobile: startScreenStreaming`, `mobile: stopScreenStreaming` (https://github.com/appium/appium-espresso-driver/pull/521)
227
- * `mobile: getNotifications` to get the list of notifications (https://github.com/appium/appium-android-driver/pull/598)
228
- * Fix `toggle_location_services` on Android 9.0 (https://github.com/appium/appium-android-driver/pull/594)
229
- * Add to allow letter as a `platformVersion` like `R` in preview/beta Android OS release ( https://github.com/appium/appium-android-driver/pull/607 )
230
- * Updated emulator detection logic (https://github.com/appium/appium/pull/14015)
231
- * Allow `mobile:` functions to perform actions in WebView contexts (https://github.com/appium/appium-uiautomator2-driver/pull/366) (https://github.com/appium/appium-espresso-driver/pull/549)
232
-
233
- #### Android (UiAutomator2)
234
- * Added `mobile: type` endpoint (https://github.com/appium/appium-uiautomator2-driver/pull/365)
235
- * Tuned `sendKeys` endpoint (https://github.com/appium/appium-uiautomator2-server/pull/329)
236
-
237
- #### Android (Espresso)
238
- * Capabilities:
239
- * `espressoBuildConfig` customize the espresso server build configuration (https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md#espresso-server-build-configuration-json)
240
- * `intentOptions` customize intent for launching activities (https://github.com/appium/appium-espresso-driver/pull/542)
241
- * `skipServerInstallation` skip espresso driver preparation (https://github.com/appium/appium-espresso-driver/pull/526)
242
- * Add `-android viewmatcher` selector (https://github.com/appium/appium-espresso-driver/pull/516)
243
- * Add `noMultilineButtons`, `noEllipsizedText` and `noOverlaps` as available element attributes to extend available view assertions (https://github.com/appium/appium-espresso-driver/pull/544)
244
- * Support `open_notifications` endpoint (https://github.com/appium/appium-espresso-driver/pull/536/files)
245
-
246
-
247
- #### Windows
248
-
249
- #### MacOS
250
- * Capabilities:
251
- * `a4mHost`, `a4mPort`, `a4mAppPath` and `killAllA4MAppBeforeStart` make mac driver configurable (https://github.com/appium/appium-mac-driver/pull/42) (https://github.com/appium/appium-mac-driver/pull/44)
252
- * Added the possibility to autodetect the location of the server app: https://github.com/appium/appium-mac-driver/pull/44
253
-
254
-
255
-
256
- CHANGES IN VERSION 1.16.0 (FROM 1.15.1)
257
- ===================================
258
-
259
- Appium 1.16.0 is a minor release
260
-
261
- #### General
262
- * Fix handling of unexpected shutdown (https://github.com/appium/appium-base-driver/pull/370) (https://github.com/appium/appium/pull/13635) (https://github.com/appium/appium/pull/13662)
263
- * Beta support for Flutter (https://github.com/appium/appium/pull/12945)
264
- * Add log a custom event and get events (https://github.com/appium/appium-base-driver/pull/364, https://github.com/appium/appium-base-driver/pull/365)
265
- * Improve memory usage
266
-
267
- #### IOS General
268
- * Fix creation of simulators on Xcode patch versions (https://github.com/appium/node-simctl/pull/89)
269
- * Support setting geolocation on simulators using [Lyft's set-simulator-location CLI](https://github.com/lyft/set-simulator-location) (https://github.com/appium/appium-ios-simulator/pull/249)
270
-
271
- #### IOS (XCUITest):
272
- * Add support for shadow DOM elements (https://github.com/appium/appium-remote-debugger/commit/559395a16088142b27289dbac6d3a5ab36caa716)
273
- * fix problem in webview asynchronous execute on older versions of iOS, when low timeouts would cause the return value to never be returned (https://github.com/appium/appium-remote-debugger/pull/185)
274
- * Allow execution of WDA without app under test (https://github.com/appium/appium-xcuitest-driver/pull/1093)
275
- * Add `mobile: deleteFile` command for removing files/folders from the device (https://github.com/appium/appium-xcuitest-driver/pull/1095)
276
- * Fall back to `ios-deploy` if native install fails (https://github.com/appium/appium-xcuitest-driver/pull/1098)
277
- * Make sure ports are properly closed when cleaning up (https://github.com/appium/appium-xcuitest-driver/pull/1094)
278
- * Handle socket errors on session start (https://github.com/appium/appium-xcuitest-driver/pull/1101)
279
- * Properly handle creating simulators with patch versions (https://github.com/appium/node-simctl/pull/89)
280
- * Fix handling of Safari console log (https://github.com/appium/appium-remote-debugger/pull/176)
281
- * Add ability to interact with Shadow DOM in Safari (https://github.com/appium/appium-remote-debugger/commit/559395a16088142b27289dbac6d3a5ab36caa716)
282
- * New capabilities
283
- * `safariLogAllCommunication` - log all plists passed to and received from the Web Inspector (https://github.com/appium/appium-xcuitest-driver/pull/1105)
284
- * `safariLogAllCommunicationHexDump` - log the raw data passed to and received from the Web Inspector (https://github.com/appium/appium-xcuitest-driver/pull/1105)
285
- * `safariSocketChunkSize` - change the size of the data passed to the Web Inspector on real devices (https://github.com/appium/appium-xcuitest-driver/pull/1105)
286
- * `additionalWebviewBundleIds` - accept an array of bundle identifiers to poll for during webview app selection (https://github.com/appium/appium-xcuitest-driver/pull/1117)
287
- * `appPushTimeout` - timeout for application upload in millisecond, on real devices (https://github.com/appium/appium-xcuitest-driver/pull/1104)
288
-
289
- #### Android General
290
- * Add `mobile: sensorSet` to gain access to setting device sensor data (https://github.com/appium/appium-android-driver/pull/555)
291
- * Speed up manifest parsing (https://github.com/appium/appium-adb/pull/471)
292
- * Fix process identification on older Android versions (https://github.com/appium/appium-adb/pull/472)
293
- * Fix batch permission setting (https://github.com/appium/appium-adb/pull/477)
294
- * Allow `appWaitDuration` to be set as low as `0` (https://github.com/appium/appium-adb/pull/479)
295
-
296
- #### Android (UiAutomator2)
297
- * Add get clipboard for Android 10+ (https://github.com/appium/appium-uiautomator2-driver/pull/348)
298
- * Fix prefer IPv4 address to the host name (https://github.com/appium/appium-uiautomator2-driver/pull/343)
299
- * Fix Turn write access verification on Windows environment (https://github.com/appium/appium-uiautomator2-driver/pull/340)
300
- * Add bluetooth state as deviceInfo (https://github.com/appium/appium-uiautomator2-server/pull/312)
301
- * Allow session creation without starting an application (https://github.com/appium/appium-uiautomator2-driver/pull/337)
302
-
303
- #### Android (Espresso)
304
- * Allow configuring Gradle, AGP, various SDK and Kotlin versions for Espresso server (https://github.com/appium/appium-espresso-driver/pull/496)
305
- * Many thanks to @tinder-ktarasov
306
- * Add get clipboard for Android 10+ (https://github.com/appium/appium-espresso-driver/pull/512)
307
-
308
- #### Windows
309
- * Support WinAppDriver 1.2 release candidate (https://github.com/appium/appium-windows-driver/pull/60)
310
- * Important capabilities: `ms:waitForAppLaunch`, `ms:experimental-webdriver`
311
- * Add a possibility to customize application startup timeout (https://github.com/appium/appium-windows-driver/pull/59)
312
- * `createSessionTimeout` (https://github.com/appium/appium-windows-driver#windowsdriver-specific-capabilities)
313
-
314
-
315
- CHANGES IN VERSION 1.15.1 (FROM 1.15.0)
316
- ===================================
317
-
318
- Appium 1.15.1 is a patch release that addresses incompatibilities with Node < 10.10
319
-
320
- #### General
321
- * Fix: support older nodejs version by just using stat [#130](https://github.com/appium/appium-support/commit/12396d7db50206e70d7f8f633d7e9a5a6f14553a)
322
-
323
- CHANGES IN VERSION 1.15.0 (FROM 1.14.1)
324
- ===================================
325
-
326
- Appium 1.15.0 is a minor release, with support for iOS 13.0.
327
-
328
- #### General
329
- * Add `--base-path` server argument to set a custom route prefix [#13079](https://github.com/appium/appium/pull/13079)
330
- * Store the image element for retrieval [#327](https://github.com/appium/appium-base-driver/pull/327)
331
- * Fix handling of W3C/MJSONWP protocols [#331](https://github.com/appium/appium-base-driver/pull/331)
332
- [#336](https://github.com/appium/appium-base-driver/pull/336) [#337](https://github.com/appium/appium-base-driver/pull/337)
333
- [#348](https://github.com/appium/appium-base-driver/pull/348) [#351](https://github.com/appium/appium-base-driver/pull/351)
334
- [#353](https://github.com/appium/appium-base-driver/pull/353) [#355](https://github.com/appium/appium-base-driver/pull/355)
335
- * Fix handling of timezone when getting the device data/time [#392](https://github.com/appium/appium-ios-driver/pull/392) [#557](https://github.com/appium/appium-android-driver/pull/557)
336
- * Fix handling of globally installed `opencv4nodejs` and `mjpeg-consumer` modules [#105](https://github.com/appium/appium-support/pull/105)
337
- * Make it possible to start server without an app or a package id using UiAutomator2 and XCUITest [#337](https://github.com/appium/appium-uiautomator2-driver/pull/337) [#195](https://github.com/appium/WebDriverAgent/pull/195)
338
- * Internally, WebDriverAgent, UiAutomator2 and Espresso servers operate only through W3C spec protocol
339
-
340
- #### IOS (XCUITest):
341
- * Support iOS 13/Xcode 11
342
- * Bump generic `"iphone simulator"` device name for iOS 13.0 from `iPhone 8` to `iPhone X` [#1068](https://github.com/appium/appium-xcuitest-driver/pull/1068)
343
- * Add support for `otherApps` capability on iOS like we have on Android [#988](https://github.com/appium/appium-xcuitest-driver/pull/988)
344
- * Add `"mobile: activeAppInfo"` feature [#1025](https://github.com/appium/appium-xcuitest-driver/pull/1025)
345
- * Settings
346
- * `mjpegScalingFactor` [#983](https://github.com/appium/appium-xcuitest-driver/pull/983)
347
- * `snapshotTimeout` [#181](https://github.com/appium/WebDriverAgent/pull/181)
348
- * `useFirstMatch` [#187](https://github.com/appium/WebDriverAgent/pull/187)
349
- * `defaultActiveApplication` [#209](https://github.com/appium/WebDriverAgent/pull/209)
350
- * `activeAppDetectionPoint` [#215](https://github.com/appium/WebDriverAgent/pull/215) [#218](https://github.com/appium/WebDriverAgent/pull/218)
351
- * `includeNonModalElements` [#222](https://github.com/appium/WebDriverAgent/pull/222)
352
- * New capabilities
353
- * `includeSafariInWebviews` [#1060](https://github.com/appium/appium-xcuitest-driver/pull/1060)
354
- * `safariGlobalPreferences` [#1057](https://github.com/appium/appium-xcuitest-driver/pull/1057)
355
- * Remove some third-party dependencies
356
- * `idevicedate` [#1042](https://github.com/appium/appium-xcuitest-driver/pull/1042)
357
- * `iproxy` [#996](https://github.com/appium/appium-xcuitest-driver/pull/996)
358
- * `idevicesyslog` [#1000](https://github.com/appium/appium-xcuitest-driver/pull/1000)
359
- * `idevicelocation` [#1006](https://github.com/appium/appium-xcuitest-driver/pull/1006)
360
- * `ifuse` [#1019](https://github.com/appium/appium-xcuitest-driver/pull/1019)
361
- * `ios-webkit-debug-proxy` [#1023](https://github.com/appium/appium-xcuitest-driver/pull/1023)
362
- * `ios-deploy` [#1009](https://github.com/appium/appium-xcuitest-driver/pull/1009)
363
- * Get only user apps in file-movement for performance aspect [#1014](https://github.com/appium/appium-xcuitest-driver/pull/1014)
364
- * Switch `reduceMotion` via settings API instead of update simulator pref [#1065](https://github.com/appium/appium-xcuitest-driver/pull/1065)
365
- * Add the necessary primitives to be able to automate split-screen apps [#209](https://github.com/appium/webdriveragent/pull/209)
366
- * Add a new endpoint for element rotation [#213](https://github.com/appium/webdriveragent/pull/213)
367
- * Add useful information in `"mobile: deviceInfo"` [#210](https://github.com/appium/webdriveragent/pull/210)
368
- * Add ability to automate split screen applications [#214](https://github.com/appium/webdriveragent/pull/214) [#215](https://github.com/appium/webdriveragent/pull/215) [#204](https://github.com/appium/WebDriverAgent/pull/204)
369
- * Allow setting compression quality and scaling factor for `mjpeg-stream` [#196](https://github.com/appium/WebDriverAgent/pull/196)
370
- * Fix `GET` `/timeouts` [#1067](https://github.com/appium/appium-xcuitest-driver/pull/1067)
371
- * Switch `async execute` to not need CORS (works for real and simulated devices) [#1063](https://github.com/appium/appium-xcuitest-driver/pull/1063)
372
- * Fix uninstalling of `WDA` with '.xctrunner' suffix for real device [#1052](https://github.com/appium/appium-xcuitest-driver/pull/1052)
373
- * Fix caching issues [#1053](https://github.com/appium/appium-xcuitest-driver/pull/1053)
374
- * Fix `mjpegstream` logic for returning screenshots [#1039](https://github.com/appium/appium-xcuitest-driver/pull/1039)
375
- * Fix Node bug when ending session [#1040](https://github.com/appium/appium-xcuitest-driver/pull/1040)
376
- * Fix launching `WDA` multiple times [#999](https://github.com/appium/appium-xcuitest-driver/pull/999)
377
- * Fix "get active element" [#1011](https://github.com/appium/appium-xcuitest-driver/pull/1011)
378
- * Fix screenshot taking for iOS below 11 [#193](https://github.com/appium/WebDriverAgent/pull/193)
379
- * Fix to not throw exception if the app is not in foreground after a timeout [#211](https://github.com/appium/WebDriverAgent/pull/211)
380
- * Fix `tap` and `tapByCoordinate` to use their native implementations since iOS 13.0 [#212](https://github.com/appium/WebDriverAgent/pull/212) [#217](https://github.com/appium/WebDriverAgent/pull/217)
381
- * Fix calculation of touch coordinates in landscape orientation for iOS 13.1 [#220](https://github.com/appium/WebDriverAgent/pull/220)
382
-
383
- #### Android General
384
- * Default Chromedriver version is `77.0.3865.40` [#143](https://github.com/appium/appium-chromedriver/pull/143)
385
- * Add server feature to enable automated Chromedriver downloads [#548](https://github.com/appium/appium-android-driver/pull/548)
386
- * New capabilities
387
- * `waitForLaunch` [#556](https://github.com/appium/appium-android-driver/pull/556) [#327](https://github.com/appium/appium-uiautomator2-driver/pull/327)
388
- * `ensureWebviewsHavePages` [#553](https://github.com/appium/appium-android-driver/pull/553)
389
- * `enforceAppInstall` [#573](https://github.com/appium/appium-android-driver/pull/573)
390
- * Fix partial platform version matching [#567](https://github.com/appium/appium-android-driver/pull/567)
391
-
392
- #### Android (UiAutomator2)
393
- * New capabilities
394
- * `gpsEnabled` [#320](https://github.com/appium/appium-uiautomator2-driver/pull/320)
395
- * New settings
396
- * `wakeLockTimeout` [#298](https://github.com/appium/appium-uiautomator2-server/pull/298)
397
- * Fix server package install by enabling replace option [#336](https://github.com/appium/appium-uiautomator2-driver/pull/336)
398
- * Fix server package install by copying apks to temporary writeable location if they cannot be written where they are [#338](https://github.com/appium/appium-uiautomator2-driver/pull/338)
399
-
400
- #### Android (Espresso)
401
- * Add timezone and locale in `deviceinfo` [#465](https://github.com/appium/appium-espresso-driver/pull/465)
402
- * Fix `sendKey` to allow multi byte strings [#474](https://github.com/appium/appium-espresso-driver/pull/474)
403
- * Fix clipboard get/set `contentType` [#478](https://github.com/appium/appium-espresso-driver/pull/478)
404
- * Fix current context when creating session [#483](https://github.com/appium/appium-espresso-driver/pull/483)
405
- * Fix set value immediately, replace value [#484](https://github.com/appium/appium-espresso-driver/pull/484)
406
- * Fix printing of the original stack trace rather than the wrapped one [#488](https://github.com/appium/appium-espresso-driver/pull/488)
407
- * Fix raise an error for launch app, close app, and reset since they do not apply to Espresso [#485](https://github.com/appium/appium-espresso-driver/pull/485) [#491](https://github.com/appium/appium-espresso-driver/pull/491)
408
- * Fix `createSession` to fulfill W3C spec [#490](https://github.com/appium/appium-espresso-driver/pull/490)
409
- * Fix raise an error for reset as they do not apply to Espresso [#491](https://github.com/appium/appium-espresso-driver/pull/491)
410
-
411
- CHANGES IN VERSION 1.14.1 (FROM 1.14.0)
412
- ===================================
413
-
414
- Appium 1.14.1 is a patch release. You.I Engine Driver is the only affected driver.
415
-
416
- #### YouI Engine Driver
417
- * Added support for YIKeyEvents (all supported key events) via Execute Mobile Command when using `mobile:PressButton`
418
- * Added new default port for You.i Engine socket server on PS4 and ability to make it configurable.
419
-
420
- CHANGES IN VERSION 1.14.0 (FROM 1.13.0)
421
- ===================================
422
-
423
- Appium 1.14.0 is a minor release.
424
-
425
- #### General
426
- * **IMPORTANT**: The default driver for Android is now set to [UiAutomator2](https://github.com/appium/appium-uiautomator2-driver) instead of [UiAutomator1](https://github.com/appium/appium-android-driver). If the [UiAutomator1](https://github.com/appium/appium-android-driver) driver is still desired, then this can be achieved by setting `automationName=UiAutomator1` in the capabilities
427
- * **IMPORTANT**: Minimum Node version is bumped up to v10
428
- * `--allow-insecure` and `--deny-insecure` server flags are added to deprecate `--relaxed-security` in the future releases [#12778](https://github.com/appium/appium/pull/12778). Please check the [documentation](https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/security.md) for further information
429
- * Drop `--enable-heapdump` for debugging [#12609](https://github.com/appium/appium/pull/12609)
430
- * Fix `--tmp` server arg [#12585](https://github.com/appium/appium/pull/12585)
431
- * Can get selected image by `find element by image` for debugging [#327](https://github.com/appium/appium-base-driver/pull/327)
432
-
433
- #### Android (Espresso)
434
- * Fix problems with activity startup not working when the package name value in `appActivity` is different from the one in `appPackage` [#441](https://github.com/appium/appium-espresso-driver/pull/441)
435
- * Add a mobile helper to disable autofill dialog in Android O [#456](https://github.com/appium/appium-espresso-driver/pull/456)
436
-
437
- #### Android (UIAutomator2)
438
- * Remove the extra wait for idle calls to speed up element queries [#279](https://github.com/appium/appium-uiautomator2-server/pull/279)
439
- * Added a new capability `trackScrollEvents` to configurate the tracking of scroll movement. This improves performance of touch actions significantly[#284](https://github.com/appium/appium-uiautomator2-server/pull/284)
440
-
441
- #### iOS (XCUITest)
442
- * Make `platformVersion` a required capability for iOS Simulators [#954](https://github.com/appium/appium-xcuitest-driver/pull/954)
443
- * Enforce Simulator shutdown if `resetOnSessionStartOnly` is set to false [#950](https://github.com/appium/appium-xcuitest-driver/pull/950)
444
- * Fixed the issue with [addresses problems with long startup times for Safari WebViews on iOS 12.2](https://github.com/appium/appium/issues/12590)
445
- * `platformVersion` capability is now mandatory for Simulators and optional for real devices (but only if Appium can determine the version from ideviceinfo output)[#954](https://github.com/appium/appium-xcuitest-driver/pull/954)
446
- * Update to call `idb` instead of `fbsimctl` which is used for some commands for simulator environment [#12574](https://github.com/appium/appium/pull/12574)
447
- * Fixed the file translation for real device [#12710](https://github.com/appium/appium/pull/12710)
448
- * Read https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/ios/ios-xctest-file-movement.md about the rule
449
- * Fixed the WDA manual code signing issue which happens in some cases [#961](https://github.com/appium/appium-xcuitest-driver/pull/961)
450
-
451
- CHANGES IN VERSION 1.13.0 (FROM 1.12.1)
452
- ===================================
453
-
454
- Appium 1.13.0 is a minor release
455
-
456
- #### General
457
- * Appium 1.13 will be the last minor version to use [UiAutomator1](https://github.com/appium/appium-android-driver) as the default Android automation. As of Appium 1.14, the default Android driver will be [UiAutomator2](https://github.com/appium/appium-uiautomator2-driver). If you don't set the `automationName` for an Android session a big [warning](https://github.com/appium/appium/pull/12481) will be displayed notifying you of the change. This will be a breaking change, and it's recommended if you wish to keep the same behavior, add the capability `automationName=UiAutomator1` to your scripts
458
- * Appium 1.13 will be the last minor version to support Node v8. As of Appium 1.14 the supported Node versions will be v10 and v12.
459
- * Added capability `defaultImageTemplateScale` to allow arranging of image comparison logic [#307](https://github.com/appium/appium-base-driver/pull/307)
460
- * Fixes:
461
- * Treat W3C /property and /attribute as aliases in a web context [#311](https://github.com/appium/appium-base-driver/pull/311)
462
-
463
- #### Android
464
- * New capabilities:
465
- * `remoteAppsCacheLimit`: sets the limit for how many APKs will be cached on a device [#523](https://github.com/appium/appium-android-driver/pull/523)
466
- * `chromedriverPorts`: allows specifying multiple ports or a range of Chromedriver ports to use for web tests [#529](https://github.com/appium/appium-android-driver/pull/529)
467
- * `buildToolsVersion`: allows you to set the Android `build-tools` version to be something different than the default, which is to use the most recent version [#532](https://github.com/appium/appium-android-driver/pull/532)
468
- * Fixes:
469
- * Emulators have a bug where they sometimes go offline when root/unroot is called. Only affects unrooted emulators. Workaround is to check if a device went offline after root/unroot was called and then restarting the ADB server if it did [#443](https://github.com/appium/appium-adb/pull/443)
470
- * Calls to `mobile:` endpoints weren't being called in web context. Default now is that, in a web context, the native mobile endpoint is always called [#527](https://github.com/appium/appium-android-driver/pull/527)
471
- * `network_connection` endpoint was also not usable from web context [#531](https://github.com/appium/appium-android-driver/pull/531)
472
- * `pushFile` was not working on some later Android SDK's due to permission errors [#439](https://github.com/appium/appium-adb/pull/439)
473
- * Default values in caps not being set correctly [#436](https://github.com/appium/appium-adb/pull/436)
474
- * No longer uninstalls apps when session is terminated if `dontStopAppOnReset` is set [#530](https://github.com/appium/appium-android-driver/pull/530)
475
- * Allow touch actions in a web context. Only works for absolute coordinates. JSONWP only, not related to W3C Actions implementation [#534](https://github.com/appium/appium-android-driver/pull/534/files)
476
- * Update Chromedriver to 73.0.0 [#318](https://github.com/appium/appium-base-driver/pull/318)
477
-
478
- #### Android (UiAutomator2)
479
- * Use UiAutomator's screenshot method when default screenshoter fails [#264](https://github.com/appium/appium-uiautomator2-server/pull/264)
480
- * Add detailed network information to the device information endpoint (appium/device/info) [#265](https://github.com/appium/appium-uiautomator2-server/pull/265). Addresses [Issue #12502](https://github.com/appium/appium/issues/12502)
481
-
482
- #### Android (Espresso)
483
- * Fixes:
484
- * Changed incorrect naming of Espresso argument `installTimeout` to the correct `androidInstallTimeout` [#426](https://github.com/appium/appium-espresso-driver/pull/426/files)
485
- * Use ADB instead of Espresso to verify activities for better reliability [#425](https://github.com/appium/appium-espresso-driver/pull/425/files)
486
-
487
- #### iOS
488
- * Support webview testing for real devices running iOS 12.2+ (1.12.1 already added support for iOS Simulators) [#122](https://github.com/appium/appium-remote-debugger/pull/122). Make sure your ios-webkit-debug-proxy is [up-to-date](https://github.com/google/ios-webkit-debug-proxy/releases/latest) for real devices.
489
- * Supports tvOS [#151](https://github.com/appium/WebDriverAgent/pull/151).
490
- * See [documentation](https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/ios/ios-tvos.md) for details.
491
- * Be sure to update Carthage to the [latest](https://github.com/Carthage/Carthage/releases) to handle TVOs dependencies
492
- * Fixes:
493
- * Improve performance of video recording by using superior startup detection tools [#12486](https://github.com/appium/appium/issues/12486)
494
- * Not able to change video recording parameters in IOS [#12463](https://github.com/appium/appium/issues/12463)
495
- * Change behavior of capability `showXcodeLog` so that when it is explicitly set to false, don't print any Xcode logs, even error logs [#12466](https://github.com/appium/appium/issues/12466)
496
-
497
-
498
- CHANGES IN VERSION 1.12.1 (FROM 1.12.0)
499
- ===================================
500
-
501
- * Appium 1.12.1 is a patch release that addresses iOS Simulator 12.2 WebView issues
502
- * `platformVersion` becomes a required capability
503
-
504
- #### iOS
505
- * `platformVersion` is necessary for real devices
506
- * Updated Appium Remote Debugger so that Safari webview tests are compatible with Xcode 10.2 (addresses [issue #12239](https://github.com/appium/appium/issues/12239)) [#118](https://github.com/appium/appium-remote-debugger/pull/118)
507
- * Fix `screenshotQuality` cap not being forwarded to WebDriverAgent [#907](https://github.com/appium/appium-xcuitest-driver/pull/907)
508
- * Fix xctestrun file detection when `useXctestrunFile` is true [#903](https://github.com/appium/appium-xcuitest-driver/pull/903)
509
- * Fix problem with Appium not using cached WebDriverAgent [#909](https://github.com/appium/appium-xcuitest-driver/pull/909)
510
-
511
-
512
- CHANGES IN VERSION 1.12.0 (FROM 1.11.1)
513
- ===================================
514
-
515
- Appium 1.12.0 is a minor release
516
-
517
- #### General
518
- * Fix wrong coordination in _find element by_ . [#306](https://github.com/appium/appium-base-driver/pull/306), [#307](https://github.com/appium/appium-base-driver/pull/307)
519
- * Added `fixImageTemplateScale` to arrange image comparison logic. Read [doc](docs/en/advanced-concepts/image-elements.md) for more details
520
-
521
- #### Android
522
- * Add `mobile:` endpoint for enabling/disabling/viewing app permissions [#305](https://github.com/appium/appium-uiautomator2-driver/pull/305)
523
- * Fix exception caused when Appium Settings fails to provide geolocation [#493](https://github.com/appium/appium-android-driver/pull/493)
524
- * Stop chromedriver proxies when reset command is called [#495](https://github.com/appium/appium-android-driver/pull/495)
525
- * Fix pin unlock errors. Turn screen off before doing pin unlock to ensure pin unlock screen has no existing entries. [#498](https://github.com/appium/appium-android-driver/pull/498)
526
- * Add `uninstallOtherPackages` capability [#289](https://github.com/appium/appium-uiautomator2-driver/pull/289)
527
- * Fix pattern unlock problems caused by not using relative touches [#489](https://github.com/appium/appium-android-driver/pull/489)
528
- * Add `chromedriverArgs` capability that passes chromedriver flags into sessions [#519](https://github.com/appium/appium-android-driver/pull/519/files)
529
- * Add `skipLogcatCapture` capability that skip capturing logcat, for possible performance enhancement.
530
-
531
- #### Android (UiAutomator2 only)
532
- * Verify file system permissions before signing files to avoid confusing signing errors [#294](https://github.com/appium/appium-uiautomator2-driver/pull/294)
533
-
534
- #### Android (Espresso only)
535
- * Add `dataMatcher` selector strategy [#386](https://github.com/appium/appium-espresso-driver/pull/386)
536
- * `mobile:` commands
537
- * Call UiAutomator commands from Espresso [#371](https://github.com/appium/appium-espresso-driver/pull/371)
538
- * `swipe` and `clickAction` delegates to Espresso's `GeneralSwipeAction` and `GeneralClickAction` [#372](https://github.com/appium/appium-espresso-driver/pull/372)
539
- * `webAtom` which delgates to Espresso's `Web Atoms` library [#380](https://github.com/appium/appium-espresso-driver/pull/380)
540
- * Fix orientation change event to not require element [#383](https://github.com/appium/appium-espresso-driver/pull/383)
541
- * Add `remoteAdbHost` capability to allow tests on remote machines [#381](https://github.com/appium/appium-espresso-driver/pull/381)
542
-
543
- #### iOS
544
- * Add `eventLoopIdleDelaySec` capability. Delays the invocation of `-[XCUIApplicationProcess setEventLoopHasIdled:]` by the number of seconds specified with this capability. This can help quiescence apps that fail to do so for no obvious reason (and creating a session fails for that reason) [#881](https://github.com/appium/appium-xcuitest-driver/pull/881)
545
- * Add `-r` flag for video recording to make screen video recording more flexible [#867](https://github.com/appium/appium-xcuitest-driver/pull/867)`
546
- * Add `enforceFreshSimulatorCreation` capability [#859](https://github.com/appium/appium-xcuitest-driver/pull/859)
547
- * More helpful logging
548
- * Add `mjpegScalingFactor` settings that change image scale of mjpeg server to stream screen [#138](https://github.com/appium/WebDriverAgent/pull/138)
549
- * Returns a couple of lines of xcodebuild error message if WDA xcodebuild fails. It helps to understand the cause. [#888](https://github.com/appium/appium-xcuitest-driver/pull/888)
550
-
551
-
552
-
553
- CHANGES IN VERSION 1.11.1 (from 1.11.0)
554
- ===================================
555
-
556
- Appium 1.11.1 is a patch release
557
-
558
- #### General
559
- * Upgrade Appium You.I Engine Driver to 1.1.2
560
- * Fix protocol translation bug (W3C -> MJSONWP) in `/actions` [#302](https://github.com/appium/appium-base-driver/pull/302)
561
- * Fix protocol conversion for `setValue` [#297](https://github.com/appium/appium-base-driver/pull/297)
562
-
563
- #### Android (UiAutomator2 only)
564
- * Fix null pointer exception on Session Details retrieval [#247](https://github.com/appium/appium-uiautomator2-server/pull/247)
565
- * Make logging configurable [#242](https://github.com/appium/appium-uiautomator2-server/pull/242)
566
- * Change implementation of the ScrollTo command, so that now it supports different strategies to search for a GUI element (by accessibility id, by class name, and by using the Android uiautomator selectors) [#244](https://github.com/appium/appium-uiautomator2-server/pull/244)
567
-
568
- CHANGES IN VERSION 1.11.0 (from 1.10.0)
569
- ===================================
570
-
571
- Appium 1.11.0 is a minor release
572
-
573
- #### iOS
574
- * Fix issues with MJPEG video streaming [#134](https://github.com/appium/WebDriverAgent/pull/134)
575
- * Xcode 10.2 device list support [appium/node-simctl#77](https://github.com/appium/node-simctl/pull/77)
576
-
577
- #### Android
578
- * Add `chromedriverDisableBuildCheck` capability which sets the `--disable-build-check` flag on Chromedriver [#474](https://github.com/appium/appium-android-driver/pull/474)
579
- * Add `skipDeviceInitialization` capability which speeds up session startup for cases where Appium doesn't need to wait for the device, push a settings app, or set permissions [#480](https://github.com/appium/appium-android-driver/pull/480)
580
- * Fall back to pressing BACK button if ESC fails to close soft keyboard [#471](https://github.com/appium/appium-android-driver/pull/471)
581
- * Improve XML source building performance by using Jaxen/JDOM2 library on Espresso and UiAutomator2 [#237](https://github.com/appium/appium-uiautomator2-server/pull/237)
582
- * Add setting `normalizeTagNames` which is set to true by default, which normalizes source tag names to workaround parsing problems
583
- * Fix: Include API level 23 for granting of permissions to apps. 23 was being incorrectly excluded previously [#473](https://github.com/appium/appium-android-driver/pull/473)
584
- * Fix: Only call `helpers.ensureDeviceLocale` if language or locale was set, to avoid spending startup time on locale unnecessarily [#477](https://github.com/appium/appium-android-driver/pull/477)
585
- * Fix: Don't regard apps as 'temporary' if the `app` is a relative path [#479](https://github.com/appium/appium-android-driver/pull/479)
586
- * Fix session init. Uninstalls Espresso server if server is older or newer than currently installed Espresso server [#358](https://github.com/appium/appium-espresso-driver/pull/358)
587
- * Fix setting WiFi connection status [#30](https://github.com/appium/io.appium.settings/pull/30)
588
-
589
- #### Android (UiAutomator2)
590
- * Add `skipServerInstallation` capability that skips the step of installing the UIAutomator2 server [#266](https://github.com/appium/appium-uiautomator2-driver/pull/266)
591
- * Fix duplicate chrome startup [#266](https://github.com/appium/appium-uiautomator2-driver/pull/266)
592
- * Only perform uiautomation process cleanup if instrumentation crashes [#280](https://github.com/appium/appium-uiautomator2-driver/pull/280)
593
-
594
- #### Android (Espresso)
595
- * Add `mobile:` endpoints to run [Espresso contrib methods](http://appium.io/docs/en/commands/mobile-command/): `openDrawer`, `closeDrawer`, `setDate`, `setTime`, `navigateTo`, `scrollToPage` [#324](https://github.com/appium/appium-espresso-driver/pull/324) (warning: See [open issue](https://github.com/appium/appium-espresso-driver/issues/331) from problem with `scrollToPage`)
596
- * Add `mobile: backdoor` method that allows accessing app-internal functionality [#317](https://github.com/appium/appium-espresso-driver/pull/317)
597
- * Add `mobile: flashElement` method [#337](https://github.com/appium/appium-espresso-driver/pull/337)
598
- * Backport [clipboard features](http://appium.io/docs/en/commands/device/clipboard/get-clipboard/) from UiAutomator2 [#361](https://github.com/appium/appium-espresso-driver/pull/361)
599
- * Fix XML memory problems
600
- * Limit traversal depth [#341](https://github.com/appium/appium-espresso-driver/pull/341)
601
- * Fallback to using filesystem if in-memory can't handle XML [#344](https://github.com/appium/appium-espresso-driver/pull/344)
602
- * Limit max length of text values in the XML to 64K
603
- * Fix ID selector by automatically prefixing with current package name [#346](https://github.com/appium/appium-espresso-driver/pull/346)
604
- * Fix crash on calling `/enabled` and `/selected` on elements [#353](https://github.com/appium/appium-espresso-driver/pull/353)
605
- * Add `nativeWebScreenshot` capability to allow screen capture of webviews [#366](https://github.com/appium/appium-espresso-driver/pull/366)
606
- * Fix element screenshot endpoint to support MJSONWP and not just W3C [#370](https://github.com/appium/appium-espresso-driver/pull/370)
607
-
608
-
609
- CHANGES IN VERSION 1.10.0 (from 1.9.1)
610
- ===================================
611
-
612
- Appium 1.10.0 is a minor release.
613
-
614
- #### General
615
- * Bring Espresso Driver out of beta and into general availability
616
- * Support Xcode 10, discontinue support for Xcode 8
617
- * Bump up minimum Node version to 8 and minimum NPM version to 6
618
- * Improve string extractions for Android and iOS
619
- * Fix synchronization of applications caching [#274](https://github.com/appium/appium-base-driver/pull/274)
620
- * Disable CORS on `createServer` by default.Add `--allow-cors` flag to server flags [#11719](https://github.com/appium/appium/pull/11719)
621
-
622
- #### iOS
623
- * Add [mobile:](http://appium.io/docs/en/commands/mobile-command/#ios-xcuitest-only) methods:
624
- * Add biometrics (touchId, faceId) methods that can enroll/unenroll biometric features and send matching/non-matching biometric inputs (iOS Simulator only) [#816](https://github.com/appium/appium-xcuitest-driver/pull/816)
625
- * Add method to clear keychains for an iOS Simulator [#816](https://github.com/appium/appium-xcuitest-driver/pull/816)
626
- * Add [permissions capability](https://github.com/appium/appium-xcuitest-driver#desired-capabilities) that sets service permissions (calendar, siri, etc...) prior to creating a session [#818](https://github.com/appium/appium-xcuitest-driver/pull/818)
627
- * Add possibility to upload files into different container types on Simulator [#770](https://github.com/appium/appium-xcuitest-driver/pull/770)
628
- * Add [reduceMotion](https://github.com/appium/appium-xcuitest-driver/blob/master/README.md#L161) capability [#760](https://github.com/appium/appium-xcuitest-driver/pull/760)
629
- * Improve video recording
630
- * Improved iOS simulator booting procedure
631
- * Add mobile endpoint for running Siri commands [#837](https://github.com/appium/appium-xcuitest-driver/pull/837)
632
-
633
- #### Android
634
- * Add [mobile:](http://appium.io/docs/en/commands/mobile-command) command for performing editor actions [#428](https://github.com/appium/appium-android-driver/pull/428)
635
- * Can record videos up to 30 minutes (requires [FFMPEG](https://www.ffmpeg.org/) to be installed) [#399](https://github.com/appium/appium-android-driver/pull/399)
636
- * Add `localeScript` capability to set script in `locale` (https://developer.android.com/reference/java/util/Locale) [#460](https://github.com/appium/appium-android-driver/pull/460)
637
- * Allow `locale` and `language` for real devices under API level 23 [#379](https://github.com/appium/appium-adb/pull/379)
638
- * Improved video recording
639
- * Fix [bug](https://github.com/appium/appium/issues/11619) calling `getRect` in MJSONWP sessions [#240](https://github.com/appium/appium-uiautomator2-driver/pull/240)
640
- * Fix pin entry error on Samsung devices that wasn't correctly locating the "Enter" button [#458](https://github.com/appium/appium-android-driver/pull/458)
641
- * Relax [hidden API policy](https://developer.android.com/about/versions/pie/restrictions-non-sdk-interfaces) for Android P and above
642
- * Support running tests using Android App Bundle [#11601](https://github.com/appium/appium/pull/11601)
643
-
644
- #### Android (UiAutomator2)
645
- * Add [mobile:](http://appium.io/docs/en/commands/mobile-command) command for retrieving device information [#221](https://github.com/appium/appium-uiautomator2-driver/pull/211)
646
- * Support `.apks` bundles [#233](https://github.com/appium/appium-uiautomator2-driver/pull/233)
647
- * Fix bug with timeouts calls for W3C sessions [#239](https://github.com/appium/appium-uiautomator2-driver/pull/239)
648
- * Refactored XML source generation and xpath search in order to fix known bugs and to improve the general performance of these operations [#208](https://github.com/appium/appium-uiautomator2-server/pull/208)
649
- * Refactored and fixed issues with W3C Actions [#205](https://github.com/appium/appium-uiautomator2-server/pull/205)
650
-
651
- CHANGES IN VERSION 1.9.1 (from 1.9.0)
652
- ===================================
653
-
654
- Appium 1.9.1 is a patch release. Next version will likely not support Xcode 8
655
-
656
- #### General
657
- * Append the current session identifier to the protocol name prefix in server logs
658
- * Fix the way current protocol is determined from execute response
659
-
660
- #### iOS
661
- * Support Xcode 10 and iOS 12.0
662
- * Add a possibility to set container type for Simulator while pushing/pulling files
663
- * Fix W3C format handling by receiveAsyncResponse command
664
- * Fix iPhone X Simulator screen recording
665
-
666
- #### Android
667
- * Fix `getStrings` for no app
668
- * Fix screen recording bug
669
- * Return the current geolocation from `getGeoLocation`
670
- * Add `mobile:mobileGetDeviceInfo` command (UiAutomator2 only)
671
- * Make 'by tag name' selector compatible with View Tag selector (Espresso only)
672
- * Convert mouse action events to touch actions (Espresso only)
673
-
674
- #### Windows
675
- * Add more support for [W3C Actions API](https://www.w3.org/TR/webdriver1/#actions)
676
- * Support pointer input methods: up, down and move
677
- * Add advanced modifier attributes to 'touch' inputs: pressure, twist, width, height
678
- * Add advanced modifier attributes to 'pen' inputs: pressure, twist, tilt x and y, eraser, barrel button
679
- * Support interpolation for 'pen' and 'multitouch'
680
-
681
-
682
- CHANGES IN VERSION 1.9.0 (from 1.8.1)
683
- ===================================
684
-
685
- Appium 1.9.0 is a feature release, comprising multiple updates.
686
-
687
- #### General
688
- * Full W3C Specification support.
689
- * Add full beta of [Espresso driver](https://github.com/appium/appium-espresso-driver)
690
- for Android automation (used by specifying `automationName` capability to be
691
- `"Espresso"`).
692
- * Add driver for [Samsung Tizen devices](https://github.com/Samsung/appium-tizen-driver)
693
- * Add `-image` find element strategy,
694
- * Fix `--async-trace` server argument, and rename as `--long-stacktrace`
695
- * Sample code has been moved into the main repository to aid in maintenance.
696
- * Fix status retrieval to speed up performance.
697
-
698
- #### iOS
699
- * Add support for Xcode 10 beta 5 and iOS 12 beta 5.
700
- * Add preliminary support for MacOS Mojave beta.
701
- * Add face id biometric support.
702
- * Fix retrieval of device time, and add optional `format` parameter.
703
- * Do not crash if there is no `idevicesyslog` when ending session.
704
- * Handle frames when page changes in Safari.
705
- * Add desired capabilities:
706
- * `remoteDebugProxy` - port or Unix domain socket on which a proxy for the
707
- remote debugger sits.
708
- * `safariGarbageCollect` - turn on/off JS garbage collection in Safari.
709
- * `showSafariNetworkLog` - print Safari network logs in the Appium server logs.
710
- * `mjpegServerPort` - port to which screenshots can be streamed.
711
- * Fix handling of settings updates, so simulators are not restarted unnecessarily.
712
- * Allow pulling of folder from real devices.
713
- * Add `mobile: getContexts` execute function, to retrieve meta-information (title,
714
- url, etc.) about available contexts.
715
- * Fix certificate retrieval and handling.
716
- * Fix cookie handling, to allow secure cookies.
717
- * Fix Safari timeout issues.
718
- * Add support to retrieve Safari network logs, as `safariNetwork` log type.
719
-
720
- #### Android
721
- * Update Chromedriver to v2.41.
722
- * Get Chrome version for Webviews in Android 7+, to find correct Chromedriver.
723
- * Make sure UiAutomator processes are cleaned up during test.
724
- * Fix handling of `autoWebview` capability.
725
- * New desired capabilities:
726
- * `mjpegScreenshotUrl` - url to stream screenshots to.
727
- * `chromedriverUseSystemExecutable` - boolean flag to use the default Chromedriver
728
- installed with Appium, avoiding any attempt to find correct Chromedriver.
729
- * `disableWindowAnimation` - disable window animations on device (now available
730
- on UiAutomator _and_ UiAutomator2).
731
- * `pageLoadStrategy` - page load strategy for Chromedriver.
732
- * Allow test-only APKs to be installed.
733
- * Fix implicit wait handling for finding elements.
734
- * Better handle Unicode IME installation.
735
- * Relax package validation logic.
736
- * Fix error in UiAutomator searches with nested quotes.
737
- * Perform accessibility refresh when needed on UiAutomator2.
738
- * Improve logic for determining if apps need upgrade.
739
- * Fix screen recording to allow longer recordings, up to 30 minutes.
740
-
741
-
742
- CHANGES IN VERSION 1.8.1 (from 1.8.0)
743
- ===================================
744
-
745
- Appium 1.8.1 introduces multiple fixes and features. Most notably, it improves the performance of XCUITest
746
- getPageSource.
747
-
748
- #### General
749
- * Fix shrinkwrap problem caused due to package-lock being set to false (#10660)
750
-
751
- #### iOS
752
- * Add keyboard presence verification endpoint (see http://appium.io/docs/en/commands/device/keys/is-keyboard-shown/)
753
- * Add `mobile:startLogsBroadcast` feature (see http://appium.io/docs/en/commands/mobile-command/)
754
- * Add cap called `realDeviceScreenshotter` to use idevicescreenshot for real device screenshots
755
- * Add application platform verification
756
- * Validates that `webdriverAgentUrl` capability is a valid URL
757
- * Add an extension to retrieve battery info from a real device
758
- * Fix Safari console log retrieval
759
-
760
- #### Android
761
- * Return the current connection state instead of undefined for setNetworkConnection
762
- * Add a possibility to include stderr output into adb:shell call (see https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/android-shell.md#supported-arguments)
763
- * Add flags argument to pressKeyCode so it is possible to generate IME actions if needed (UIAutomator2 only)
764
- * Add a cap called `userProfile` which is an integer to enforce user profile while launching applications
765
- * Make it possible to retrieve a battery info from the device under test (mobile:batteryInfo)
766
- * Add `deviceApiLevel` to returned session capabilities (UIAutomator2 only)
767
- * Fix passing suppressKillServer option while creating ADB instance
768
- * Improve performance of swipe unlock action
769
- * Improve restore from background behaviour
770
-
771
- CHANGES IN VERSION 1.8.0 (from 1.7.2)
772
- ===================================
773
-
774
- Appium 1.8.0 introduces full support for the [W3C WebDriver specification](https://www.w3.org/TR/webdriver/)
775
- ([digested version of the spec](https://github.com/jlipps/simple-wd-spec)).
776
-
777
- #### General
778
- * Minimum [NodeJS](https://nodejs.org/en/) version moved to 6
779
- * Add methods for
780
- * getting and setting the clipboard contents
781
- * get full screen screenshots
782
- * Application management
783
- * More efficient app downloading by caching URLs
784
- * All `moveTo` operations in touch actions now take coordinates as absolute
785
- * Support for registering selenium grid through HTTPS by setting the configuration
786
- key `"hubProtocol"` to `"https"`
787
- * Add `otherApps` desired capability, to specify array of ancillary apps to install
788
- on session creation
789
-
790
- #### iOS
791
- * Support for iOS 11.3/Xcode 9.3
792
- * Fix handling of process arguments
793
- * Add capabilities
794
- * `shutdownOtherSimulators` - shutdown other running simulators at session start up
795
- * Add ability to record screen
796
- * Add support for complex gestures
797
- * Fix handling of custom SSL certificate on simulators
798
- * Better handling of `xcodebuild` processes
799
- * Maintain keychains while upgrading apps
800
- * Better handle simulators in unexpected states
801
- * Add performance measuring (see [documentation](https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/ios/ios-xctest-performance.md))
802
-
803
- #### Android
804
- * Support for Android P (API Level 28)
805
- * Known issue in screenshot: https://issuetracker.google.com/issues/76114030
806
- * Fix handling of webview contexts when resetting apps
807
- * Fix handling of screen recording
808
- * Make sure intent is broadcast when file is uploaded
809
- * Add possibility to broadcast device logs through WebSocket
810
- * Chromedriver
811
- * Bundle version 2.37
812
- * Automatically choose compatible Chromedriver for Chrome version
813
- * `chromedriverExecutableDir` capability to specify where Chromedrivers are located
814
- * `chromedriverChromeMappingFile` capability to specify what Chromedriver version corresponds to what Chrome version
815
- * Fix Handling of idle state waiting
816
- * Speed up screenshot logic in UiAutomator2
817
- * Allow disabling of notification watching through settings
818
- * Fix parsing and granting of permissions for app under test
819
- * Support deep linking and Android Instant Apps
820
-
821
-
822
- CHANGES IN VERSION 1.8.0-beta (from 1.7.2)
823
- ===================================
824
-
825
- Appium 1.8.0 introduces full support for the [W3C WebDriver specification](https://www.w3.org/TR/webdriver/)
826
- ([digested version of the spec](https://github.com/jlipps/simple-wd-spec)).
827
-
828
-
829
- CHANGES IN VERSION 1.7.2 (from 1.7.1)
830
- ===================================
831
-
832
- Appium 1.7.2 is a feature and bug fix release. It fixes many issues found in
833
- earlier releases.
834
-
835
-
836
- #### General
837
- * Fix memory leak in server logging
838
- * Add support for MacOS 10.13
839
- * Clean up logging to make messages more clear and useful
840
- * Add `printPageSourceOnFindFailure` to automatically log the current page source when finding an
841
- element or elements fails
842
- * Add ability to take screenshots of an element
843
- * Begin to handle Selenium W3C specification
844
-
845
- #### iOS
846
- * Simulators
847
- * Clean up handling in Xcode 9
848
- * Add support for `shake` gesture (requires AppleScript)
849
- * Add support for custom geo locations (requires AppleScript)
850
- * Add possibility to clear caches
851
- * Make sure execution does not fail when trying to shut down simulators that
852
- are already shut down
853
- * Fix handling of source when within a frame/iframe, so that the source of the
854
- frame is retrieved instead of that of the top-most frameset
855
- * Fix error when unable to parse real device date/time, to return unparsable
856
- date rather than `Invalid Date`
857
- * Fix getting crash logs
858
- * Fix getting device logs in iOS 10+
859
- * Fix cleaning up of temporary files
860
- * Correctly handle device names for iPhone 7, 8 and X in Xcode 9
861
- * Fix screenshots for larger real devices
862
- * Fix runtime Xcode selection through `DEVELOPER_DIR` environment variable
863
- * Add `useJSONSource` desired capability to force Appium to use WDA JSON source
864
- and parse locally, to speed up source retrieval on larger devices
865
- * Fix file pushing/pulling so it works for simulators and real devices
866
-
867
- #### iOS - Instruments-specific
868
-
869
-
870
- #### Android
871
- * Fix handling of install/upgrade of Appium helper apps (for settings manipulation
872
- and unlocking of devices)
873
- * Add support for Chromedriver 2.33 (which supports webviews on Android O)
874
- * Add `showChromedriverLog` desired capability to bring Chromedriver logs in-line
875
- in the Appium server logs
876
- * Fix error in stopping coverage when session failed to start
877
- * Add support for getting and setting animation state
878
- * Fix handling of size-limited text fields in API levels below 24
879
- * Add support for getting the current value of progress bars
880
- * Fix handling of initial orientation, and make sure no orientation is set if
881
- nothing is requested
882
- * Make sure all UiAutomator commands are properly handled
883
- * Ensure `pageLoadStrategy` capability is passed to Chromedriver
884
- * Add support to get currently running package name
885
- * Ensure non-working Chromedriver is correctly handled
886
- * Add `password` to retrievable element attributes
887
- * Fix locale/language setting
888
- * Add `clearDeviceLogsOnStart` desired capability, to clear `adb` `logcat` logs when the session is started
889
- * Add `--relaxed-security`, and `mobile: shell` access to `adb`
890
-
891
- CHANGES IN VERSION 1.7.1 (from 1.7.0)
892
- ===================================
893
-
894
- Appium 1.7.1 fixes multiple issues with the previous release.
895
-
896
- #### iOS
897
- * Add ability to change default Simulator preferences
898
-
899
- #### iOS - XCUITest
900
- * Can use xctestrun file to launch WDA
901
- * Fix bug that was causing startCapture to be called more than once
902
- * Apply a workaround for setting default device orientation
903
- * Update offset determination for iPad
904
-
905
- #### iOS+Safari
906
- * Add handler for starting/stopping JS console capture
907
-
908
- #### Android
909
- * Add support to force upgrade settings app
910
- * Always assumes the file to be pushed by `pushFile` command contains binary data
911
- * Add ADB option to to force reinstall on upgrade
912
-
913
- #### Android - UiAutomator 2
914
- * Do not proxy getting app strings
915
-
916
-
917
- CHANGES IN VERSION 1.7.0 (from 1.6.5)
918
- ===================================
919
-
920
- **Note:** This is a feature release, marking two major changes:
921
- * Support iOS 11 through Xcode 9 beta 6
922
- * Support multiple simultaneous sessions in Android and iOS (9+)
923
-
924
- **Known Issues:**
925
- * Android
926
- * Webviews on Android O do not work because of a bug in Chromedriver. We
927
- are working on a workaround. Chrome sessions still work
928
- * iOS
929
- * Touch ID enrollment on simulators in Xcode 9 does not work because of an
930
- issue with AppleScript
931
- * Scaling simulators with Xcode 9 does not work
932
- * Simulators in Xcode 9 produce no meaningful device logs
933
- * Parallel Safari/Webview sessions are not working due to an Apple bug
934
-
935
- #### General
936
- * Fix handling of sending keys to elements in recent versions of Selenium
937
- * Allow `app` capability that is a url to have query parameters
938
- * Begin to allow multiple device support in situations where it is possible
939
- (e.g., iOS under Xcode 9)
940
- * Add `isHeadless` capability to allow running simulator/emulator with no UI
941
-
942
- #### iOS
943
- * Add command to upload media to simulator
944
- * Fix reliability of touch ID functionality
945
- * Fix detection of system apps
946
- * Update atoms used for MobileSafari automation to those of Selenium 3.5.3
947
- * Add `realDeviceLogger` capability to allow specification of what program to
948
- use to capture logs on real device
949
- * Fix handling of `enablePerformanceLogging` capability in Safari tests
950
- * Fix offset when Safari on an iPad has multiple tabs
951
-
952
- #### iOS - XCUITest
953
- * Support for latest Beta of iOS 11 (Xcode 9 beta 6)
954
- * Multiple device support
955
- * Fix handling of bundle id on simulators
956
- * Make `nativeWebTap` a setting as well as a desired capability
957
- * Allow `nativeWebTap` to work on real devices
958
- * Do not try to uninstall app before installing on real device, which was causing
959
- many issues
960
- * Fix clearing of text fields
961
- * Change behavior of `useNewWDA`: if `true`, forces uninstall of any existing
962
- WebDriverAgent app on device. Set it to `true` if you want to apply different
963
- startup options for WebDriverAgent for each session. Real devices require
964
- WebDriverAgent client to run for as long as possible without reinstall/restart
965
- to avoid issues. The `false` value will try to detect currently running WDA
966
- listener executed by previous testing session(s) and reuse it if possible,
967
- which is highly recommended for real device testing and to speed up suites of
968
- multiple tests in general. A new WDA session will be triggered at the default
969
- URL (http://localhost:8100) if WDA is not listening and `webDriverAgentUrl`
970
- capability is not set.
971
- * Allow setting url in native context
972
- * Fix screenshot functionality
973
-
974
- #### Android
975
- * Add `remoteAdbHost` capability to specify the host on which adb is running, if
976
- it is not localhost
977
- * Add methods to start and stop recording the screen
978
- * Fix screenshot commands
979
- * Skip setting of mock location for emulators
980
- * Add methods for emulator phone capacity: `sendSMS`, `gsmCall`, `gsmSignal`,
981
- `gsmVoice`, `powerAC`, `powerCapacity`, and `networkSpeed`
982
- * Fix cleanup of adb port forwarding during Chrome sessions
983
- * Fix error where package name would be appended to fully qualified activity
984
- name and package finding would then fail
985
- * Properly handle bootstrap failure on launch
986
- * Make sure correct logger is used for bootstrap
987
-
988
- #### Android - UIAutomator 2
989
- * Fix handling of `adbPort` capability
990
- * Fix coverage handling
991
- * Handle pressing and long pressing key codes
992
- * Enable `nativeWebScreenshot` capability
993
- * Fix restoring of IME when `unicodeKeyboard`/`resetKeyboard` capabilities are
994
- used
995
- * Add `disableWindowAnimation` capability to launch instrumentation with no
996
- animation
997
- * Correctly start ChromeDriver session for Chrome session
998
- * Allow getting `password` attribute from elements
999
-
1000
-
1001
-
1002
-
1003
- CHANGES IN VERSION 1.7.0-beta (from 1.6.5)
1004
- ===================================
1005
-
1006
- **Note:** This is a **_BETA_** release. Please direct any issues to the [Appium
1007
- issue tracker](https://github.com/appium/appium/issues) and provide as much
1008
- information as possible.
1009
-
1010
- This release exists to provide an updatable package in order to get the latest
1011
- work on Appium. To install, first uninstall Appium and then re-install with the
1012
- `beta` tag. To get any changes that have been published to sub-packages, simply
1013
- repeat that process.
1014
- ```
1015
- npm uninstall -g appium
1016
- npm install -g appium@beta
1017
- ```
1018
-
1019
- If you are running iOS tests with the XCUITest backend (i.e., iOS 10+ tests, and
1020
- some iOS 9.3 tests, if the `automationName` capability is set to `XCUITest`), you
1021
- should also remove the old build artifacts.
1022
- 1. Remove derived data: `rm -rf ~/Library/Developer/Xcode/DerivedData/WebDriverAgent-*`
1023
- 2. Remove `WebDriverAgentRunner` application from any real device being tested.
1024
-
1025
- #### Android
1026
- * Add beta version of Espresso Driver. To use, set `automationName = espresso`.
1027
-
1028
-
1029
- CHANGES IN VERSION 1.6.6-beta.4 (from 1.6.5)
1030
- ===================================
1031
-
1032
- **Note:** This is a **_BETA_** release. Please direct any issues to the [Appium
1033
- issue tracker](https://github.com/appium/appium/issues) and provide as much
1034
- information as possible.
1035
-
1036
- This release exists to provide an updatable package in order to get the latest
1037
- work on Appium. To install, first uninstall Appium and then re-install with the
1038
- `beta` tag. To get any changes that have been published to sub-packages, simply
1039
- repeat that process.
1040
- ```
1041
- npm uninstall -g appium
1042
- npm install -g appium@beta
1043
- ```
1044
-
1045
- If you are running iOS tests with the XCUITest backend (i.e., iOS 10+ tests, and
1046
- some iOS 9.3 tests, if the `automationName` capability is set to `XCUITest`), you
1047
- should also remove the old build artifacts.
1048
- 1. Remove derived data: `rm -rf ~/Library/Developer/Xcode/DerivedData/WebDriverAgent-*`
1049
- 2. Remove `WebDriverAgentRunner` application from any real device being tested.
1050
-
1051
- #### Android
1052
- * Add beta version of Espresso Driver. To use, set `automationName = espresso`.
1053
-
1054
- CHANGES IN VERSION 1.6.5 (from 1.6.4)
1055
- ===================================
1056
-
1057
- Appium 1.6.5 fixes many issues and continues the trend to make more aspects of
1058
- the automation process configurable.
1059
-
1060
- #### General
1061
- * Add `--enable-heapdump` server flag to turn on NodeJS memory dump collection,
1062
- to aid in memory management.
1063
- * Better logging of erroneous responses.
1064
- * Full support of W3C specification's handling of capabilities.
1065
- * Fix licensing in all dependencies.
1066
-
1067
- #### Android
1068
- * Added handlers for basic system alerts, so now it is possible to accept/decline/get text of the most of
1069
- them using the standard Selenium's switchTo().alert() interface (UIA2 only)
1070
- * Fix backgrounding of app.
1071
- * Add `androidInstallPath` capability to specify where on the device apps are installed.
1072
- * Speed up taking screenshots on Android 5.0 and higher devices.
1073
- * Fix handling of activity names that are inner classes.
1074
- * Support latest Android SDK directory structure.
1075
- * Fix issue where granting permissions would fail if there were too many.
1076
- * Fix handling of parent element information when finding elements.
1077
-
1078
- #### Android - UIAutomator 2
1079
- * Fix handling of boolean return values.
1080
- * Add `skipUnlock` capability to skip the device unlock process.
1081
- * Fix issue where setting the network connection would crash.
1082
-
1083
-
1084
- #### iOS
1085
- * Add `enableAsyncExecuteFromHttps` capability to allow simulators to execute
1086
- asynchronous JavaScript on pages using HTTPS.
1087
- * Allow setting url in native context, for opening deep links.
1088
- * Better memory management when capturing device logs.
1089
- * Add `webkitResponseTimeout` capability to adjust the timeout for responses in
1090
- Safari real device tests.
1091
- * Add `enablePerformanceLogging` capability (previously Android-only) to turn on
1092
- performance logging in Safari tests.
1093
-
1094
- #### iOS - XCUITest
1095
- * Fully support `clearSystemFiles` desired capability, deleting the derived data
1096
- for the `xcodebuild` process.
1097
- * Fix `longPress` duration, to be milliseconds.
1098
- * Add `mobile: selectPickerWheelValue` method to aid in interacting with picker wheels.
1099
- * Add `mobile: alert` method to enable passing of `buttonLabel` option, to handle
1100
- alerts with non-standard button names.
1101
- * Fix hanging if an app is not installed and only bundle identifier is given in
1102
- capabilities.
1103
- * Allow `platformVersion` to be a number or a string.
1104
-
1105
-
1106
-
1107
- CHANGES IN VERSION 1.6.5-beta (from 1.6.4)
1108
- ===================================
1109
-
1110
- **Note:** This is a **_BETA_** release. Please direct any issues to the [Appium
1111
- issue tracker](https://github.com/appium/appium/issues) and provide as much
1112
- information as possible.
1113
-
1114
- This release exists to provide an updatable package in order to get the latest
1115
- work on Appium. To install, first uninstall Appium (`npm uninstall -g appium`)
1116
- and then re-install with the `beta` tag (`npm install -g appium@beta`). To get
1117
- any changes that have been published to sub-packages, simply repeat that process.
1118
-
1119
-
1120
- CHANGES IN VERSION 1.6.4 (from 1.6.3)
1121
- ===================================
1122
-
1123
- Appium 1.6.4 fixes numerous issues with the previous releases. This release
1124
- supports iOS 10.3 as well as Android 7.1.
1125
-
1126
- **_Note_:**
1127
- * Apple's MacOS 10.12.4 update has broken the functioning of iOS 10.2 and below
1128
- simulators.
1129
-
1130
- #### General
1131
- * Fix `UnhandledPromiseRejection` errors when running Appium with Node version 7
1132
- * Better indicate missing necessary programs to users
1133
- * Fix session creation logging
1134
- * Fix server shutdown on `SIGINT` and `SIGTERM` signals
1135
- * Ensure that all requests have `application/json` content-type
1136
- * Add an event timing API to allow for monitoring of performance metrics such as
1137
- time to session startup, simulator boot, etc. Add `eventTimings` capability
1138
- to enable or disable
1139
-
1140
- #### iOS
1141
- * Fix issues with error handling in Safari/Webview handling
1142
- * Increase simulator launch timeout for iOS 10+
1143
- * Better handling of page selection in Safari
1144
- * Fix memory usage issues when device logs get large
1145
- * Add `startIWDP` capability to allow Appium to handle starting/stopping `ios-webkit-debug-proxy`
1146
- automatically.
1147
- * Fix problem where date returned from device was not parsable
1148
- * Allow custom `SafariLauncher` bundle id to be passed in through `bundleId` capability
1149
- during real device Safari tests, in case Xcode can no longer build the bundled one
1150
- * Fix logging from real device in the case where the device data/time are different
1151
- from the server
1152
-
1153
- #### iOS - XCUITest
1154
- * Changes the way the Appium checks that WebDriverAgent is running on the device,
1155
- so that rather than searching the logs, the device is pinged until it is
1156
- ready.
1157
- - Remove `realDeviceLogger` capability, since we no longer check the logs
1158
- * Add `useNewWDA` capability, which forces uninstall of the WDA app from the
1159
- device before each session
1160
- * Add `wdaLaunchTimeout` capability, which specified the time, in `ms`, to wait
1161
- for WDA to be loaded and launched on the device
1162
- * Allow for the auto-generation of the Xcode config file used to configurable
1163
- WDA before launch. This includes _two_ new desired capabilities
1164
- - `xcodeOrgId` - the Apple developer team identifier string
1165
- - `xcodeSigningId` - a string representing a signing certificate, defaulting to
1166
- "iPhone Developer"
1167
- * Allow for automatic changing of bundle id for WDA in cases where a
1168
- provisioning profile cannot be made for default bundle
1169
- - add `updatedWDABundleId` capability to specify bundle id for which there is
1170
- a valid provisioning profile
1171
- * Speed up setting the value of text fields
1172
- * Add `wdaConnectionTimeout` to control how long the server waits for WDA to
1173
- allow connections
1174
- * Fix handling of local port on real devices
1175
- * Speed up Safari interactions
1176
- * Fix session deletion to ensure that clean up happens
1177
- * Add `mobile: swipe` execute method
1178
- * Ensure that scrolling through `mobile: scroll` works in web context
1179
- * Add `class chain` search strategy (see [wiki](https://github.com/facebook/WebDriverAgent/wiki/Queries#searching-for-elements))
1180
- * Add `maxTypingFrequency` capability to set the speed of typing
1181
- * Introduce new set of gestures to allow access to everything the underlying
1182
- system can do (see [docs](https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/ios-xctest-mobile-gestures.md))
1183
- * Add `allowTouchIdEnroll` capability to enroll simulator for touch id
1184
- * Use `simctl` to do simulator screenshots when possible
1185
- * Fix handling of getting status so that it returns even when other commands
1186
- are in progress, bypassing queue
1187
- * Fix bug where commands in webviews would work, but not return for a long time
1188
- * If `showXcodeLog` capability set, print out the contents of the xcodebuild log
1189
- file at the end of the session (also after a failure/retry of the build, in
1190
- such a case)
1191
-
1192
-
1193
- #### Android
1194
- * Default installation to ChromeDriver 2.28
1195
- * Add device manufacturer, model, and screen size to session details
1196
- * Fix bug in checking avd status on some systems
1197
- * Allow wildcards in `appWaitActivity` capability
1198
- * Fix issue where reboot would fail
1199
- * Add new unlocking strategies (see [docs](https://github.com/appium/appium-android-driver/blob/master/docs/UNLOCK.md))
1200
- * Add `androidNaturalOrientation` capability to allow for correct handling of
1201
- orientation on landscape-oriented devices
1202
- * Allow backgrounding to be permanent
1203
- * Dismiss Chrome welcome screen if `--no-first-run` Chrome option passed in
1204
- * Fix Android command line tools for recent releases
1205
- * Make network setting commands more reliable
1206
-
1207
- #### Android - Selendroid
1208
- * Fix handling of host binary configuration for more precise installation options
1209
-
1210
-
1211
- CHANGES IN VERSION 1.6.4 Beta (from 1.6.3)
1212
- ===================================
1213
-
1214
- **Note:** This is a **_BETA_** release. Please direct any issues to the [Appium
1215
- issue tracker](https://github.com/appium/appium/issues) and provide as much
1216
- information as possible.
1217
-
1218
- #### General
1219
- * Fixed `UnhandledPromiseRejection` errors when running Appium with Node version
1220
- 7
1221
- * Better indicate missing necessary programs to users
1222
- * Fix session creation logging
1223
- * Fix server shutdown on `SIGINT` and `SIGTERM` signals
1224
- * Ensure that all requests have `application/json` content-type
1225
-
1226
- #### iOS
1227
- * Fix issues with error handling in Safari/Webview handling
1228
- * Increase simulator launch timeout for iOS 10+
1229
- * Better handling of page selection in Safari
1230
- * Fix memory usage issues when device logs get large
1231
-
1232
- #### iOS - XCUITest
1233
- * Changed the way the Appium checks that WebDriverAgent is running on the device,
1234
- so that rather than searching the logs, the device is pinged until it is
1235
- ready.
1236
- - Removed `realDeviceLogger` capability, since we no longer check the logs
1237
- * Add `useNewWDA` capability, which forces uninstall of the WDA app from the
1238
- device before each session
1239
- * Add `wdaLaunchTimeout` capability, which specified the time, in `ms`, to wait
1240
- for WDA to be loaded and launched on the device
1241
- * Allow for the auto-generation of the Xcode config file used to configurable
1242
- WDA before launch. This includes _two_ new desired capabilities
1243
- - `xcodeOrgId` - the Apple developer team identifier string
1244
- - `xcodeSigningId` - a string representing a signing certificate, defaulting to
1245
- "iPhone Developer"
1246
- * Allow for automatic changing of bundle id for WDA in cases where a
1247
- provisioning profile cannot be made for default bundle
1248
- - add `updatedWDABundleId` capability to specify bundle id for which there is
1249
- a valid provisioning profile
1250
- * Speed up setting the value of text fields
1251
- * Add `wdaConnectionTimeout` to control how long the server waits for WDA to
1252
- allow connections
1253
- * Fix handling of local port on real devices
1254
- * Speed up Safari interactions
1255
- * Fix session deletion to ensure that clean up happens
1256
- * Add `mobile: swipe` execute method
1257
- * Ensure that scrolling through `mobile: scroll` works in web context
1258
-
1259
- #### Android
1260
- * Default installation to ChromeDriver 2.26
1261
- * Add device manufacturer, model, and screen size to session details
1262
- * Fix bug in checking avd status on some systems
1263
- * Allow wildcards in `appWaitActivity` capability
1264
-
1265
- #### Android - Selendroid
1266
- * Fix handling of host binary configuration for more precise installation options
1267
-
1268
-
1269
- CHANGES IN VERSION 1.6.3 (from 1.6.2)
1270
- ===================================
1271
-
1272
- _This is another emergency release due to an issue with the NPM shrinkwrap_
1273
-
1274
- #### iOS
1275
-
1276
- * Fix issue where we might try and uninstall an ssl cert from a real device
1277
- where this isn't sensible
1278
- * Fix another issue with acceptSslCerts where it might potentially miss the
1279
- correct sim UDID
1280
-
1281
- #### iOS - XCUITest
1282
- * Upgrade version of WebDriverAgent used. Includes following updates:
1283
- * Improve xpath query performance
1284
- * Verify predicates
1285
- * Fix crash for some xpath selectors
1286
- * Decorate proxied getSession response with Appium's capabilities (fixes
1287
- issues with clients that call getSession to determine server capabilities
1288
- and are confused by WDA's non-standard response) ([#7480](https://github.com/appium/appium/issues/7480))
1289
- * Fix issue with starting XCUITests on a real device, due to changes in WDA
1290
- that invalidated our startup detection logic. ([#7313](https://github.com/appium/appium/issues/7313))
1291
- * Allow connecting to an already-running WebDriverAgent through the
1292
- `webDriverAgentUrl` capability, rather than starting our own
1293
-
1294
- #### Android
1295
- * Fix bug where we would attempt to get target SDK version from manifests
1296
- even when they might not include it. ([#7353](https://github.com/appium/appium/issues/7353))
1297
- * Actually pass the `acceptSslCerts` capability to the underlying automation
1298
- so that it can have an effect ([#7326](https://github.com/appium/appium/issues/7326))
1299
- * Updated permission granting logic to speed up permission granting by doing
1300
- it in bulk rather than one at a time ([#7493](https://github.com/appium/appium/issues/7493))
1301
- * Hide the new permission granting logic behind an `autoGrantPermissions`
1302
- capability which doesn't attempt to grant permissions unless it's `true`
1303
- ([#7497](https://github.com/appium/appium/issues/7497))
1304
-
1305
- #### Android - Uiautomator2
1306
-
1307
- * Add ability to verify TOAST messages (these can't be interacted with, only
1308
- text retrieval allowed)
1309
-
1310
- #### Windows
1311
- * _Actually_ upgrade WinAppDriver to 0.7 ([#7445](https://github.com/appium/appium/issues/7445)). Includes following updates:
1312
- * Click on arbitrary elements
1313
- * Support for sendKeys modifiers
1314
- * Various bugfixes
1315
- * Added `GET /orientation`
1316
- * Added support for WPF apps
1317
-
1318
-
1319
- CHANGES IN VERSION 1.6.2 (from 1.6.1)
1320
- ===================================
1321
-
1322
- _This is a small, mostly-emergency release because we realized we omitted
1323
- XCUITest upgrades via WebDriverAgent that we had mistakenly presumed were part
1324
- of 1.6.1._
1325
-
1326
- #### iOS - XCUITest
1327
- * Upgrade version of WebDriverAgent used. Includes following updates:
1328
- * Support for setting values on sliders
1329
- * Fix tapping in various orientations
1330
- * Allow tapping on arbitrary coordinates
1331
- * Support for pinch gestures
1332
- * Make `clear` faster
1333
- * Improve xpath query performance
1334
- * Add `preventWDAAttachments` capability to help with XCUITest speed and disk usage
1335
-
1336
- #### Android - UiAutomator2
1337
- * Code refactoring to pave the way for some UiAutomator2 wifi automation work
1338
- * Find an unused system port automatically to avoid port clashes
1339
-
1340
- #### Windows
1341
- * Upgrade WinAppDriver to 0.7. Includes following updates:
1342
- * Click on arbitrary elements
1343
- * Support for sendKeys modifiers
1344
- * Various bugfixes
1345
- * Added `GET /orientation`
1346
- * Added support for WPF apps
1347
-
1348
-
1349
- CHANGES IN VERSION 1.6.1 (from 1.6.0)
1350
- ===================================
1351
-
1352
- Appium 1.6.1 is the first release since bringing Appium into the [JS Foundation](https://js.foundation/)
1353
- (see [press release](https://js.foundation/announcements/2016/10/17/Linux-Foundation-Unites-JavaScript-Community-Open-Web-Development/)).
1354
-
1355
- Much of the development energy has been spent on fixing issues that have come up
1356
- from the newly-integrated XCUITest and UI Automator 2 vendor-provided test
1357
- backends.
1358
-
1359
- #### General
1360
- * Add `clearSystemFiles` desired capability, to specify whether to delete any generated
1361
- files at the end of a session (see iOS and Android entries for particulars)
1362
- * Better handle signals for stopping server
1363
- * Fix operation of Selenium 3 Grid
1364
- * Log more of the proxied requests and responses, for better debugging
1365
- * Better handle source mapping for IDE support
1366
- * Move `appium-doctor` into globally-installed utility, not bundled with server
1367
- * Move `appium-logger` into `appium-base-driver`
1368
- * Better handle downloading of zip files which may not have a `.zip` extension (like `.apk`)
1369
-
1370
-
1371
- ##### iOS
1372
- * Add support for iOS 10.1
1373
- * Add support for iOS 10.2 Beta 1
1374
- * Add `clearSystemFiles` desired capability to specify whether to Core Simulator
1375
- files, and Instruments (for iOS Driver) or XCUITest (for XCUITest Driver) generated files
1376
- * Ensure correct files are tested when checking for Simulator newness
1377
- * Map `iPad Simulator` `deviceName` to iPad Retina instead of discontinued iPad 2
1378
- * Gracefully return when Webkit Remote Debugger doesn't return on a real device
1379
- * Better log errors from xcode handling
1380
- * Add `customSSLCert` capability to pre-authorize a specific SSL cert in the iOS trust store
1381
- * During reset, don't try to uninstall an app from a real device if it's not installed
1382
-
1383
-
1384
- ##### iOS - XCUITest specific
1385
- * clean up logging to remove confusing "Waiting..." lines
1386
- * Fix issue in which switching to NATIVE_APP would still proxy find commands to Remote debugger
1387
- * Fix handling of Selenium Grids
1388
- * Correctly handle long press so duration is respected
1389
- * Add `tapWithShortPressDuration` desired capability to specify a length for tapping,
1390
- if the regular tap is too long for the app under test
1391
- * Add support for scrolling through Touch Actions
1392
- * Make sure keyboard is available when keys are sent to Text Fields
1393
- * Add support for Zoom via Touch Action API (Pinch still not supported by Apple)
1394
- * Fix implementation of double tap
1395
- * Improvements in startup flow for real devices
1396
- * Allow gestures on coordinates, not just elements
1397
- * Add `scaleFactor` capability to direct Appium to set the simulator scale
1398
-
1399
-
1400
- ##### Android
1401
- * Use ChromeDriver version 2.25
1402
- * Correctly handle `--suppress-adb-kill-server` command line argument
1403
- * Pass actual failure back when session fail and deleting the session also fails
1404
- * Add `clearSystemFiles` desired capability to specify whether to delete temporary
1405
- copies of the application under test at the end of the session
1406
- * Fix issue where finding UI Automator process id would throw an error
1407
- * Add `chromeAndroidPackage` capability which will be passed to `chromeOptions`
1408
- * Add APIs for gathering various kinds of performance data
1409
- * Ensure we don't try to stop app if `dontStopAppOnReset` is in force
1410
- * Fix issue where we tried to determine the bounds of a non-existent element
1411
-
1412
-
1413
- ##### Android - UiAutomator2
1414
- * Fix handling of element attributes
1415
- * Better handle element finding
1416
- * Toast message verification support
1417
- * Ensure that there is a <hierarchy> root tag for xml/xpath source
1418
- * Implement /rotation endpoint (supports 4 rotations)
1419
-
1420
-
1421
- CHANGES IN VERSION 1.6.0 (from 1.5.3)
1422
- ===================================
1423
-
1424
- This release of Appium is a significant milestone, introducing support for two new platforms:
1425
- * [Windows](https://www.microsoft.com/en-us/windows) desktop applications (see the [usage documentation](https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/windows-app-testing.md)).
1426
- * [You.i TV](http://www.youi.tv/) (see the [driver documentation](https://github.com/YOU-i-Labs/appium-youiengine-driver#appium-youi-engine-driver)).
1427
-
1428
- There is also support for two new frameworks for automating iOS and Android:
1429
- * XCUITest support for automating iOS 9.3 and 10 (see [migration docs](https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/migrating-to-xcuitest.md) and [driver docs](https://github.com/appium/appium-xcuitest-driver#appium-xcuitest-driver)).
1430
- * UI Automator 2 support for enhanced automation of Android devices (see [wiki](https://github.com/appium/appium-uiautomator2-server/wiki)).
1431
-
1432
- #### General
1433
- - Require Node 4 or above (**possible breaking change**)
1434
- - Add `automationName` capability entries for `XCUITest`, `UIAutomator2`, and `youiengine`
1435
- - Add `platformName` capability entry for `Windows`
1436
-
1437
- #### iOS
1438
- - Add support for Xcode 8 and iOS 10 (using `automationName` of `XCUITest`). For information on using this driver, see the [driver documentation](https://github.com/appium/appium-xcuitest-driver#external-dependencies)
1439
- - Make sure device name gets properly translated into actual device name
1440
- - Fix case where orientation would get lost
1441
- - Fix Safari page change logic to actually catch when a page changes
1442
- - Try harder to kill Instruments if the normal way does not work, to avoid hanging processes
1443
- - Move `authorize-ios` into global package
1444
-
1445
- #### Android
1446
- - Add `androidInstallTimeout` desired capability, to customize the timeout when installing an app
1447
- - Add `androidScreenshotPath` desired capability, to set the path in which screenshot files are saved on the device
1448
- - Add `appWaitDuration` desired capability, to customize how long to wait for an application
1449
- - Fix optional intent arguments to allow for hyphens
1450
- - Wait for apps to launch before proceeding
1451
- - Switch to clearing text fields using adb, to improve reliability and speed
1452
- - Add ability to detect screen orientation
1453
- - Make sure Selendroid mode doesn't lose connection through adb when network changes
1454
- - Make sure the release action in a touch action chain doesn't happen in the wrong place
1455
- - Make application install more reliable
1456
- - Fix screenshot on Windows
1457
- - Make Chromedriver connect on a random port if none specified
1458
- - Add `reboot` server argument, to specify that the avd ought to be cleaned and rebooted
1459
-
1460
-
1461
- CHANGES IN VERSION 1.6.0 beta 1 (from 1.5.3)
1462
- ===================================
1463
-
1464
- This release of Appium marks the beginning of support for two brand new platforms:
1465
- * [Windows](https://www.microsoft.com/en-us/windows) desktop applications (see the [usage documentation](https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/windows-app-testing.md))
1466
- * [You.i TV](http://www.youi.tv/) (see the [driver documentation](https://github.com/YOU-i-Labs/appium-youiengine-driver#appium-youi-engine-driver)).
1467
-
1468
- Further, since Apple removed the Instruments automation functionality in Xcode 8,
1469
- this release of Appium has preliminary support for XCUITest, allowing for the automation
1470
- of applications in iOS 9.3 and 10.
1471
-
1472
- #### General
1473
- - Require Node 4 or above (**possible breaking change**)
1474
- - Add `automationName` entries for `XCUITest`, and `youiengine`
1475
- - Add `platformName` entry for `Windows`
1476
-
1477
- #### iOS
1478
- - Add preliminary support for Xcode 8 and iOS 10 (using `automationName` of `XCUITest`). For information on using this driver, see the [driver documentation](https://github.com/appium/appium-xcuitest-driver#external-dependencies)
1479
- - Make sure device name gets properly translated into actual device name
1480
- - Fix case where orientation would get lost
1481
- - Fix Safari page change logic to actually catch when a page changes
1482
- - Try harder to kill Instruments if the normal way does not work, to avoid hanging processes
1483
-
1484
- #### Android
1485
- - Add `androidInstallTimeout` desired capability, to customize the timeout when installing an app
1486
- - Add `androidScreenshotPath` desired capability, to set the path in which screenshot files are saved on the device
1487
- - Add `appWaitDuration` desired capability, to customize how long to wait for an application
1488
- - Fix optional intent arguments to allow for hyphens
1489
- - Wait for apps to launch before proceeding
1490
- - Switch to clearing text fields using adb, to improve reliability and speed
1491
- - Add ability to detect screen orientation
1492
- - Make sure Selendroid mode doesn't lose connection through adb when network changes
1493
- - Make sure the release action in a touch action chain doesn't happen in the wrong place
1494
- - Make application install more reliable
1495
- - Fix screenshot on Windows
1496
- - Make Chromedriver connect on a random port if none specified
1497
-
1498
-
1499
-
1500
- CHANGES IN VERSION 1.5.3 (from 1.5.2)
1501
- ===================================
1502
-
1503
- *NOTE*: Appium 1.5.3 is primarily a bug-fix release.
1504
-
1505
- It also adds functionality to support for iOS [WKWebViews](https://developer.apple.com/library/ios/documentation/WebKit/Reference/WKWebView_Ref/) and for automating the iOS Calendar app, as well as adding a capability to use `abd` for screenshots in Android web/hybrid sessions, selecting the correct version of Android emulator, and providing a list of Android activities to wait for on session startup.
1506
-
1507
- Further, Android session reporting is increased, so that automation clients can get the device UDID for the automation session, as well as the currently running `appPackage` and `appActivity`.
1508
-
1509
- #### General
1510
- - Allow `--default-capabilities` server argument to specify a file containing the default capabilities.
1511
- - Fix handling of statuses from proxied drivers (Chrome, Selendroid, etc.).
1512
- - Fix handling of `browserName` capability for Selenium Grid usage.
1513
- - Fix intermittent bug where creating a directory might crash the server.
1514
- - Fix handling of `--session-override` server argument.
1515
-
1516
- #### iOS
1517
- - Add support for `WKWebView`-based webviews.
1518
- - Add support for automating the built-in Calendar app.
1519
- - Fix `ios-debug-proxy-launcher`.
1520
- - Fix bug where scrolling in Safari would crash.
1521
- - Fix handling of Safari in "new window" state.
1522
- - Fix handling of arguments for `keys` method so that clients that send an array do not fail.
1523
- - Clean up handling of `ipa` files for real device tests.
1524
- - Make sure `processArguments` parsing works.
1525
- - Fix iwd script to allow re-running.
1526
-
1527
- #### Android
1528
- - Add `nativeWebScreenshot` capability, to use `adb` screenshots instead of ChromeDriver if necessary.
1529
- - Add support to auto-select device based on `platformVersion` rather than using first available device.
1530
- - Allow `appWaitActivity` to be a list of activities
1531
- - Fix setting wifi and data state
1532
- - Implement `initAutoWebView` capability.
1533
- - Report `appPackage`, `appActivity`, and `deviceUDID` when requesting session details.
1534
- - Make sure unlock app is closed at the end of a session so that the device works again.
1535
- - Fix handling of unlock to make less flakey.
1536
- - Make sure unicode encoding works correctly when strings are long.
1537
- - Fix handling of `disableAndroidWatchers` capability.
1538
- - Fix killing ChromeDriver on Ubuntu 16.04.
1539
- - Fix bug where early ChromeDriver failure crashed Appium.
1540
-
1541
-
1542
-
1543
- CHANGES IN VERSION 1.5.2 (from 1.5.1)
1544
- ===================================
1545
-
1546
- *NOTE*: Appium 1.5.2 is a bug-fix release.
1547
-
1548
- #### General
1549
- - deprecated `--command-timeout`. Use `newCommandTimeout` desired capability instead
1550
- - ensure implicit wait can be set through `timeout` method
1551
- - add better logging for `EPIPE` errors
1552
-
1553
- #### iOS
1554
- - make sure `ipa` files are handled correctly for installing on real devices
1555
- - ensure that existing SafariLauncher on device is used instead of rebuilding and reinstalling
1556
- - fix issues with getting webview contexts on real devices
1557
- - add full timeout support through `timeout` method
1558
- - make sure Xpath searches respect implicit wait timeout
1559
- - make sure bare Instruments process arguments are accepted
1560
-
1561
- #### Android
1562
- - fix failure when `apk` file is too large
1563
- - re-implement setting geolocation so it does not use Telnet.
1564
- - add support for Chromium browser
1565
- - fix issues with `flick`
1566
- - fix bug where touch action `release` would throw an error
1567
- - fix bug in later Android SDK version where noticing a newly started avd would fail
1568
- - implement `autoWebviewTimeout`
1569
-
1570
-
1571
-
1572
- CHANGES IN VERSION 1.5.1 (from 1.5)
1573
- ===================================
1574
-
1575
- *NOTE*: Appium 1.5.1 is a bug-fix release.
1576
-
1577
- #### General
1578
- - allow `platformName` to be any case
1579
- - Windows process handling is cleaned up
1580
- - Desired capabilities `language` and `locale` added
1581
-
1582
- #### iOS
1583
- - iOS 9.3 (Xcode 7.3) support
1584
- - Fix handling of return values from `executeScript` in Safari
1585
- - Don't stop if Instruments doesn't shut down in a timely manner
1586
- - Escape single quotes in all methods that set the value on an element
1587
- - Allow custom device names
1588
- - Make full use of process arguments to Instruments
1589
- - Pass `launchTimeout` to Instruments when checking devices
1590
-
1591
- #### Android
1592
- - Make use of `--bootstrap-port` server argument
1593
- - Fix `keystorePassword` capability to allow a string
1594
- - Fix handling of localization in Android 6
1595
- - Use Appium's unlock logic for Chrome sessions
1596
- - Make sure reset works
1597
- - Make unlock more reliable for later versions of Android
1598
- - Allow Xpath searching from the context of another element
1599
- - Make full use of process arguments to adb
1600
- - Better error messages when ChromeDriver fails to start
1601
-
1602
- CHANGES IN VERSION 1.5 (from 1.4.16)
1603
- ======================================
1604
-
1605
- *NOTE*: Appium 1.5 is a complete rewrite of Appium from the ground up. Every
1606
- effort has been made to avoid any breaking changes but caution should be
1607
- exercised. Please let us know on GitHub if you notice any issues with your
1608
- tests.
1609
-
1610
- #### General
1611
- - Appium now requires Node 0.12 as a minimum Node version
1612
- - Deprecate server arguments that are also desired capabilities. Instead, add
1613
- a `--default-capabilities` argument which takes a JSON string of capabilities
1614
- that will be the default for any session. E.g., `--default-capabilities '{"launchTimeout": 60000}'`
1615
- - Various docs and contributing docs updates (including a code of conduct for
1616
- the project)
1617
- - Add capability validation on the protocol and driver level. Along with this
1618
- we have tightened up requirements on capability values so that they can be
1619
- strictly validated. For example, before you were able to send in a string
1620
- value of `"180"` for the `newCommandTimeout` capability. Now you must send in
1621
- an actual JSON number, e.g., `180`.
1622
- - Remove the `autoLaunch` capability since it added a significant
1623
- amount of complexity to the startup flow and Appium shouldn't be responsible
1624
- for this kind of use case
1625
- - Remove long-deprecated `name` locator strategy
1626
- - Remove long-deprecated `mobile: xxx` gesture commands, except scroll
1627
-
1628
- #### iOS
1629
- - add Tapster support for some more touch methods
1630
- - fix moveTo: treat coordinates as relative, instead of absolute
1631
- - iPhone 6 + 6S support
1632
- - iOS 9.3 support
1633
-
1634
- #### Android
1635
- - enable navigating to an android URI via the set url driver methods, e.g.,
1636
- driver.get('content://contacts/people/1')
1637
- - fix some adb issues in Windows (e.g., `signWithCustomCert`, sdk binary names)
1638
- - fix issue with UIWatcher ssl certificate errors
1639
- - if you want to install all chromedrivers, use --chromedriver-install-all; if
1640
- you want to install a specific chromedriver version, use
1641
- --chromedriver-version="$VER"
1642
- - `driver.closeApp` no longer runs through the shutdown routine; it simply
1643
- force-stops the app
1644
- - The `ANDROID_ADB_SERVER_PORT` environment variable has been removed in favor
1645
- of the `adbPort` desired capability, which does the same thing.
1646
-
1647
- #### Non-exhaustive examples of internal changes
1648
- - see the [developer's
1649
- overview](/docs/en/contributing-to-appium/developers-overview.md) for
1650
- a fuller description of Appium 1.5 from a developer's perspective
1651
- - get rid of reset.sh and various other appium build tools in favor of a simple
1652
- npm install
1653
- - split apart Appium into various smaller modules each with their own
1654
- repositories and NPM packages
1655
- - use gulp instead of grunt
1656
- - use babel to transpile from es2015+ to standard es5 code
1657
- - get rid of .appiumconfig.json
1658
-
1659
- CHANGES IN VERSION 1.4.16 (from 1.4.15)
1660
- ===================================
1661
-
1662
- #### iOS
1663
- - fix for safari and webview issues for 9.2
1664
-
1665
- CHANGES IN VERSION 1.4.15 (from 1.4.14)
1666
- ===================================
1667
-
1668
- #### iOS
1669
- - fix for safari and webview issues in iOS9+
1670
-
1671
- CHANGES IN VERSION 1.4.14 (from 1.4.13)
1672
- ===================================
1673
-
1674
- #### iOS
1675
- - support for iOS9.2
1676
- - fix for webview, resolving context issues in iOS9+
1677
-
1678
- #### Selendroid
1679
- - upgrade to Selendroid 0.17.0.
1680
-
1681
- CHANGES IN VERSION 1.4.13 (from 1.4.12)
1682
- ===================================
1683
-
1684
- #### Chromedriver
1685
- - Setting appium-chromedriver version to 2.3.2 as it is stable on Node version 0.10.32
1686
-
1687
- CHANGES IN VERSION 1.4.12 (from 1.4.11)
1688
- ===================================
1689
-
1690
- #### iOS
1691
- - support for iOS9.1
1692
- - fix for iOS simulator with similar device names on Xcode 7
1693
- - fix to idevicelog (real device) to record logs only for device under test
1694
-
1695
- CHANGES IN VERSION 1.4.11 (from 1.4.10)
1696
- ===================================
1697
-
1698
- #### iOS
1699
- - fix for iOS simulator selector for Xcode 7
1700
- - fix for selecting default device for iOS9
1701
-
1702
- CHANGES IN VERSION 1.4.10 (from 1.4.9)
1703
- ===================================
1704
-
1705
- #### General
1706
- - fixed bug in a config file accidentally published in version 1.4.9
1707
-
1708
- CHANGES IN VERSION 1.4.9 (from 1.4.8)
1709
- ===================================
1710
-
1711
- #### iOS
1712
- - support for iOS9 and xcode 7
1713
- - at this point instruments-without-delay is not supported for xcode-7
1714
-
1715
- CHANGES IN VERSION 1.4.8 (from 1.4.7)
1716
- ===================================
1717
-
1718
- #### General
1719
- - fix for Windows users! Now the system architecture is properly detected, npm installs should work again
1720
-
1721
- #### Chromedriver / Android hybrid
1722
- - fix for an issue in responding to `/status` api endpoint, this is used heavily by Selenium grid
1723
-
1724
- CHANGES IN VERSION 1.4.7 (from 1.4.6)
1725
- ===================================
1726
-
1727
- #### Chromedriver / Android hybrid
1728
- - fix for problem in downstream jsonwp-proxy; now sessionId returned is replaced
1729
- with sessionId present in url(original sessionId). Fixed this in appium-jsonwp-proxy 1.2.3
1730
-
1731
- CHANGES IN VERSION 1.4.6 (from 1.4.5)
1732
- ===================================
1733
-
1734
- #### General
1735
- - this is a republish because of a misconfiguration before 1.4.5 got published
1736
- resulting in a server startup failure
1737
-
1738
-
1739
- CHANGES IN VERSION 1.4.5 (from 1.4.4)
1740
- ===================================
1741
-
1742
- #### General
1743
- - fix problem with npm shrinkwrap that caused Appium not to start
1744
-
1745
-
1746
- CHANGES IN VERSION 1.4.4 (from 1.4.3)
1747
- ===================================
1748
-
1749
- #### Chromedriver / Android hybrid
1750
- - fix a problem in downstream appium-chromedriver; no longer rely on async
1751
- methods returning objects of the Promise type. This was causing undefined
1752
- errors when running Chromedriver/hybrid tests.
1753
-
1754
-
1755
- CHANGES IN VERSION 1.4.3 (from 1.4.2)
1756
- ===================================
1757
-
1758
- #### iOS
1759
- - update the appium-instruments dependency with working subdeps
1760
-
1761
-
1762
- CHANGES IN VERSION 1.4.2 (from 1.4.1)
1763
- ===================================
1764
-
1765
- #### General
1766
- - update ES6-based dependencies which got bit by a breaking Regenerator
1767
- change
1768
-
1769
- #### iOS
1770
- - keep track of the correct app ID for Safari webviews (fixes problems in
1771
- finding the webview for iOS)
1772
-
1773
- #### Android
1774
- - fix sendKeys and clear for Samsung devices
1775
-
1776
-
1777
- CHANGES IN VERSION 1.4.1 (from 1.4)
1778
- ===================================
1779
-
1780
- #### Chromedriver
1781
- - have the appium-chromedriver manage the chromedriver binary download/install
1782
-
1783
-
1784
- CHANGES IN VERSION 1.4 (from 1.3.7)
1785
- ======================================
1786
-
1787
- #### General
1788
- - fix for broken `./reset.sh --dev` due broken UICatalog build package in sample-code submodule
1789
- - fix for issues with cookie encoding
1790
- - updated sample code
1791
- - updated documentation
1792
- - updated test suite
1793
- - deprecate node 0.10
1794
-
1795
- #### iOS
1796
- - support for iOS 8.3
1797
- - deprecate iOS 6.1 and iOS 7.0 (support will be removed soon, probably 1.5)
1798
- - deprecate Xcodes less than 6.3 (moving to support of latest versions only,
1799
- and Xcode 6.3+ together allows automation of all supported iOS versions). The
1800
- only exception to this is the combination of Xcode 6.0.1 + iOS 8.0.
1801
- - fix for issues relating to finding xcode folder and Info.plist
1802
- - new sever flag `--instruments <path>` to specify custom path to instruments commandLine tool
1803
- - fix for getOrientation
1804
- - fix for iOS crash log retrieval
1805
-
1806
- #### Android
1807
- - fix for killing chromedriver on windows
1808
- - fix for parsing java version correctly
1809
- - support for searching elements by id without passing package name
1810
- - requesting capabilities from server now returns correct deviceName and platformVersion for Android
1811
- - fix for scrollTo
1812
- - new capability `disableAndroidWatchers`
1813
- - deprecated capability `stopAppOnReset`
1814
- - new capability `dontStopAppOnReset`
1815
- - fix a crash possibly encountered during extracting app strings
1816
- - new server argument `suppress-adb-kill-server`
1817
- - fix issue with `keys()`; now it correctly targets currently-focused element
1818
-
1819
- #### Selendroid
1820
- - Support for installApp, isAppInstalled and removeApp
1821
-
1822
- #### Android+Chrome
1823
- - Chormedriver version updated to 2.15
1824
- - fix for driver.quit()
1825
- - use the correct ADB path already identified by Appium
1826
-
1827
- #### iOS+Safari
1828
- - fix for handling real device object
1829
- - fix for safariAllowPopups for iOS 8.x
1830
- - reduce logging in remote debugger for real devices, and don't use console.log
1831
- - fix issues with SafariLauncher on real devices
1832
- - fix execute_async so that it now works at all
1833
-
1834
- CHANGES IN VERSION 1.3.7
1835
- ======================================
1836
-
1837
- #### General
1838
- - fix failure to remap session id in proxied responses
1839
-
1840
- #### iOS
1841
- - fix intermittent failure to find Xcode
1842
-
1843
- CHANGES IN VERSION 1.3.6
1844
- ======================================
1845
-
1846
- #### Android
1847
- - fix XPath regression where Appium failed to recognize non-ASCII characters
1848
- - fix regression where Appium failed to set ADB's path during Chromedriver tests
1849
-
1850
- CHANGES IN VERSION 1.3.5
1851
- ======================================
1852
-
1853
- #### iOS
1854
- - fix for a bug when driver.get() never returns for page with alert.
1855
- - iOS 8.2 support.
1856
- - fixed safari startup crashes.
1857
- - ensure Appium drops into the right continuation cb when selecting hybrid contexts.
1858
-
1859
- #### Android
1860
- - now finds the location of adb earlier.
1861
- - ensure encoding stream in Bootstrap.jar closes correctly.
1862
- - add workaround for issue where UiAUtomator fails to find visible elements.
1863
- - fixed undefined member error for the release object.
1864
- - add a delete key test.
1865
-
1866
- #### Selendroid
1867
- - upgrade to Selendroid 0.13.0.
1868
-
1869
- CHANGES IN VERSION 1.3.4
1870
- ======================================
1871
-
1872
- #### General
1873
- - better handling of session closing.
1874
- - tmp dir customization via env variable.
1875
- - app/browserName error message fix.
1876
- - functional test fixes.
1877
-
1878
- #### iOS
1879
- - allow location services in zip file.
1880
- - ensure a string is returned from iOS getText.
1881
- - simpler device type detection logic.
1882
- - screenshotWaitTimeout cap
1883
- - added ios-webkit-debug-proxy launcher to go round libidevice 8.1 bugs
1884
- - waitForAppScript capability.
1885
- - syslog fix
1886
- - getStrings refactoring
1887
- - simulator folder fix
1888
- - doctor support for OSX 10.10.1
1889
-
1890
- #### Android
1891
- - exec refactoring.
1892
- - uses for latest apktool (2.0.0-RC2) when Java 7 is detected.
1893
- - ADB.jars refactored into instance property.
1894
- - smart keyboard closing fix.
1895
- - added support for getting the resourceId attribute of an element.
1896
- - clear text fix for large centered edit fields.
1897
- - better handling of errors in clear text.
1898
- - ensure an already-running Android device's language and country settings are correct.
1899
- - fixed unknown server-side error is thrown when the XPath expression doesn't match any nodes.
1900
- - better error handling is SetText
1901
- - edit + clear fields with hint text fix.
1902
- - make hideKeyboard do nothing when keyboard is present but not closable (has no UI).
1903
-
1904
- #### Selendroid
1905
- - upgrade to Selendroid 0.12.0.
1906
- - throws when getting a redirect from Selendroid.
1907
- - added hideKeyboard support.
1908
- - uses for latest apktool (2.0.0-RC2) when Java 7 is detected.
1909
-
1910
- CHANGES IN VERSION 1.3.3 (from 1.3.1)
1911
- ======================================
1912
-
1913
- #### General
1914
- - fix several internal Appium tests
1915
- - add a sendKeyStrategy capability to allow testers to enable less reliable, but faster sendKey method
1916
- - add handling for safeRimRafSync ENOENT mesages
1917
- - clean up sessions when session clobbering enabled
1918
- - fix stripping log colors on --stripColors
1919
- - create system logs file before tailing it
1920
-
1921
- #### iOS
1922
- - fix issue where driver.current_context is `null` for native app context
1923
- - fix bug that prevents closing tabs in Safari
1924
- - fix log capture when Appium starts a simulator for the first time
1925
- - add OSX 10.10 and iOS8 support for Appium Doctor
1926
- - fix inability to open Safari on a real device
1927
-
1928
- #### Android
1929
- - fix arg and cap parsing when passing arguments to adb
1930
- - add support for passing elements as targets for swipe actions
1931
- - correctly calculate relative position of swipe targets
1932
- - ensure ChromeDriver instances are properly terminated
1933
- - fix appPackage parsing error with overlapping namespaces
1934
- - fix TouchAction release bug when released element is not valid
1935
- - ensure `logcat` correctly appended to command string
1936
-
1937
- #### Selendroid
1938
- - add comment to caps page, and to running tests page, to note the need for a period before an activity
1939
-
1940
- CHANGES IN VERSION 1.3.2
1941
- =====================================
1942
-
1943
- #### Patch number skipped due to NPM error
1944
-
1945
- CHANGES IN VERSION 1.3.1 (from 1.3.0)
1946
- =====================================
1947
-
1948
- #### iOS
1949
- - fixed a bug where appium could hang if the 'full-reset' and 'keepKeychain' capabilities were both used on ios8.1
1950
- - default context now set to `NATIVE_APP` instead of being null
1951
-
1952
- #### Android
1953
- - fix bugs which arise from spaces in the path to `adb` tool
1954
- - fix detection of whether the screen is locked
1955
- - fix an error with running remote apk's on Windows
1956
-
1957
- CHANGES IN VERSION 1.3.0 (from 1.2.4)
1958
- ======================================
1959
-
1960
- #### General
1961
- - allow `full-reset` desired capability to work alongside `language`/`locale` desired capabilities
1962
-
1963
- #### iOS
1964
- - add iOS 8 support
1965
- - add support for launching an app on the sim just by bundleId (iOS8 only)
1966
- - ensure screenshot process uses dir specified in --tmp
1967
- - add --isolate-sim-device which removes all other xcode 6 simulators
1968
- before running test (might be necessary for some platforms)
1969
- - update mobile safari temp app to include platformVersion so we don't get
1970
- strange version conflicts
1971
- - reset push notification privacy settings in between sessions
1972
- - fix the flakiness of getting a list of available devices
1973
- - auto-refresh Safari if no webviews are found
1974
- - rewrite cookie handling code to use code derived from jQuery instead of mozilla docCookie
1975
- - force device string when device name starts with "="
1976
- - fix a security hole in pullFile() where users could download files on the machine hosting appium
1977
-
1978
- #### Android
1979
- - fix Chromedriver to work with newer versions
1980
- - Chromedriver will work if adb is not running on default port
1981
- - speed up clearing text fields when there is hint text
1982
-
1983
- #### Selendroid
1984
- - fix sendKeys() in CHROMIUM context
1985
- - fix getContexts()
1986
-
1987
- CHANGES IN VERSION 1.3.0-beta1 (from 1.2.3)
1988
- ======================================
1989
-
1990
- #### General
1991
- - add objective-c examples
1992
-
1993
- #### iOS
1994
- - update appium-instruments with logging fixes
1995
- - add iOS 8 support
1996
- - add support for launching an app on the sim just by bundleId (iOS8 only)
1997
- - ensure screenshot process uses dir specified in --tmp
1998
- - add --isolate-sim-device which removes all other xcode 6 simulators
1999
- before running test (might be necessary for some platforms)
2000
- - update mobile safari temp app to include platformVersion so we don't get
2001
- strange version conflicts
2002
- - reset push notification privacy settings in between sessions
2003
-
2004
-
2005
- CHANGES IN VERSION 1.2.4 (from 1.2.3)
2006
- ======================================
2007
-
2008
- #### General
2009
- - add objective-c examples
2010
-
2011
- #### iOS
2012
- - update appium-instruments with logging fixes
2013
- - update appium-instruments with getDevices stalling fix
2014
-
2015
- #### Android
2016
- - give better error for UiScrollable parse exception
2017
- - fix UiSelector instance in finds
2018
- - use last coordinates for touch release
2019
-
2020
-
2021
- CHANGES IN VERSION 1.2.3 (from 1.2.2)
2022
- ======================================
2023
-
2024
- #### General
2025
- - add a settings api (used currently only for Android xpath compression)
2026
- - add configurable loglevels for different transports
2027
- - allow appium to be run under sudo if the sudo user owns the appium files
2028
-
2029
- #### iOS
2030
- - fix crash while recovering from instruments failure
2031
- - add ability to launch app by 'bundleId' cap alone (no 'app' cap)
2032
- - misc groundwork for iOS8
2033
- - fix bug that prevented scrolling collectionViews
2034
- - more crash recovery bugfixes
2035
- - use 'click' atom in webviews, 'tap' sent two clicks
2036
- - fix bug where we'd try to kill a null logging proc and crash
2037
- - enable performance logs for webviews
2038
- - allow automation of native frame in safari (actually works on 7.1!)
2039
- - fix uiautomation predicate search bug
2040
- - fix 'spawn ENOENT' bug caused by a missing deviceconsole binary
2041
- - fix autoAcceptAlert bug
2042
- - fix certain findElement crashes
2043
- - fix hideKeyboard bugs
2044
-
2045
- #### Android
2046
- - fix issue with unzipping apk
2047
- - add ability to launch arbitrary apps/activities mid-session
2048
- - add lock() method to lock screen
2049
- - add unlock() method to unlock screen
2050
- - fix bug where app would be classified incorrectly as not installed
2051
- - add settings api member for setting layout hierarchy compression
2052
- - fix crash when touch actions attempted on webviews
2053
- - undo setText changes and simply handle hint text fields better
2054
-
2055
- #### Selendroid
2056
- - fix --selendroid-quick reset.sh option
2057
- - fix unicode keyboard issues
2058
- - fix bug in getting window_handles
2059
- - fix bug that would prevent launching an app with spaces in its apk path
2060
-
2061
-
2062
- CHANGES IN VERSION 1.2.2 (from 1.2.1)
2063
- ======================================
2064
-
2065
- #### General
2066
- - add doc for running on multiple devices simultaneously
2067
- - move sample code and sample apps out of the main appium repo
2068
- - remove http request size limit
2069
-
2070
- #### iOS
2071
- - check to make sure an element is not UIAElementNil before returning it
2072
- - add a configurable key delay to help with keyboard smudging
2073
- - fix issue with deleting cookies in mobile safari
2074
- - correct sendKeys behavior not to clear text before sending keys
2075
- - remove 'iwebview' support, since automating safari works
2076
- - fix bug where apostraphes in accessibility ids caused elements not to be
2077
- found
2078
- - use deviceconsole instead of idevicesyslog to capture ios logs
2079
- - fix bug where automating safari on a real device would hang forever and never
2080
- start a session
2081
- - fix bug where getting text() on a textfield would return its label instead of
2082
- its value
2083
-
2084
- #### Android
2085
- - cache Chromedriver webview objects so we don't need to start a new
2086
- Chromedriver on every context switch
2087
- - correct sendKeys behavior not to clear text before sending keys
2088
- - allow chromeOptions cap object to be passed to chromedriver
2089
- - download all chromedriver architectures for linux (32 and 64 bit)
2090
- - make sure we stop adb logcat logging when ending a chrome session so we don't
2091
- leak processes
2092
- - add noSign capability to skip the apk resigning process
2093
- - add setText method that will clear a text field before adding text; this is
2094
- primarily useful for textfields with hint text where clear() does not work
2095
- in general
2096
- - move xpath parsing into the android bootstrap, for fewer bugs and greater
2097
- reliability. NOTE: this could be a breaking change depending on the kind of
2098
- xpath selectors you are using
2099
- - clean android XML tags of invalid characters like '$'
2100
- - fix bug where '&' would be sent into a textfield as '&-'
2101
- - add isLocked method to determine whether screen is locked
2102
- - add ability to automate the native portion of the Chrome/Browser apps
2103
-
2104
- #### Selendroid
2105
- - make sure the contact manager test app has the required internet permissions
2106
-
2107
-
2108
- CHANGES IN VERSION 1.2.1 (from 1.2.0)
2109
- ======================================
2110
-
2111
- #### General
2112
- - fix up sample code
2113
- - bring back support for autoLaunch=false case
2114
- - reset commandTimeout during implicit wait cycles
2115
- - remove deprecated window_handles methods
2116
- - add --local-timezone flag that uses timezone for timestamps
2117
- - add a configurable --callback-address and --callback-port for execute_async
2118
- - update setLocation method to use correct spec params for geolocation
2119
- - add networkConnection to server capabilities so clients can use the API
2120
- - if boolean cap values are sent in as strings, convert them to boolean
2121
-
2122
- #### iOS
2123
- - fix bug where we waited for safari7 dirs when we weren't on ios7.x
2124
- - improve deviceName flexibility and device recognition
2125
- - make sure instruments and uiauto know about the tmp dir flag
2126
- - fix install/uninstall logic for real ios device
2127
- - fix bug with parsing of binary vs XML plists
2128
- - fix handling of multiple taps
2129
- - clean up iOS simulator log
2130
- - fix hang when ending a real safari session
2131
- - implement pushFile for ios
2132
- - allow .ipa in the list of downloadable app types
2133
- - retry getting screenshot if it fails
2134
- - fix JavaScript error when using sendKeys
2135
- - fix error where testsuite would kill appium in its ios reset cycle
2136
- - fix error in getting localized strings
2137
-
2138
- #### Android
2139
- - fix handling of IME activation
2140
- - fix chromedriver kill logic
2141
- - support API level 10 style focused activity strings
2142
- - add lots of fallback strategies for element.clear()
2143
- - update api level dependency for the project to 19
2144
- - add fallback strategies for finding app activity from AndroidManifest
2145
- - fix bug with xpath searches for //*
2146
- - fix xpath search bugs, now we use UiAutomator's instance() which is more
2147
- reliable
2148
- - fix grunt-helpers bug when building appium on windows
2149
- - retry all adb commands to make all adb commands less flakey
2150
- - upgrade chromedriver to 2.10
2151
-
2152
- #### Selendroid
2153
- - fix for setValue and getContexts methods, they were not using a custom
2154
- selendroid port if active
2155
- - selendroid now requires internet permission in apps; fail if it's not
2156
- present
2157
- - add custom keystore support
2158
- - upgrade selendroid to 0.11.0
2159
-
2160
-
2161
- CHANGES IN VERSION 1.2.0 (from 1.1.0)
2162
- ======================================
2163
-
2164
- #### General
2165
- - migrated to express 4 for the webserver
2166
- - allow setting tmp dir with --tmp flag
2167
- - upgrade many submodules including wd
2168
- - add --strict-caps mode which will cause sessions to fail which send in
2169
- bad or unknown caps
2170
- - add error handling for invalid multi-pointer gestures
2171
- - add autoWebview capability to automatically get into a webview context of a
2172
- hybrid app
2173
- - remove deprecated -real xpath locator strategy
2174
- - allow bypassing appium's sudo checks
2175
- - add generic crash handler
2176
- - many documentation and sample code updates
2177
-
2178
- #### iOS
2179
- - prevent log lines without dates from being filetered out
2180
- - add keepAppToRetainPrefs cap to avoid deleting location plists
2181
- - check for accessibility id matching selector then fall back to string match
2182
- - add flag for specifying where in .app hierarchy Localizable.strings is
2183
- - use a dynamic bootstrap in appium-uiauto
2184
- - upgrade mechanic
2185
- - implement pullFolder to get an entire folder from the sim
2186
- - make sure launchAndKill can wait for specified directories before killing sim
2187
- - get rid of ForceQuitInstruments
2188
- - update hideKeyboard to take various possible strategies
2189
- - fix launchAndKill to wait for safari-specific directories
2190
- - make sure all pageload timeouts are cleared and called only once
2191
- - disable ios grace delay
2192
- - don't return duplicate elements
2193
-
2194
- #### Android
2195
- - renamed keyevent to press_keycode and long_press_keycode
2196
- - add dedupe to complex_find
2197
- - fix activity-finding logic
2198
- - fix error handling in installApp
2199
- - extract adb code into its own package, appium-adb
2200
- - add support for opening notifications
2201
- - add automation support for embedded chromium
2202
- - fix pushStrings to work with 'app' as package
2203
- - fix id serach
2204
- - cause appium to fail if we can't parse package/activity
2205
- - add package name to android webview context
2206
- - make sure UNZIP env var doesn't confuse our internal unzip calls
2207
- - add appIntent etc capabilities so app can be launched with a certain intent
2208
- - add IME methods, and an appium-specific IME that is automatically installed
2209
- - add unicodeKeyboard capability which allows sending unicode text
2210
- - fix installApp, prevent a server crash
2211
-
2212
- #### Selendroid
2213
- - faster selendroid installer
2214
-
2215
-
2216
- CHANGES IN VERSION 1.1.0 (from 1.0.0)
2217
- ======================================
2218
-
2219
- #### General
2220
- - less buggy xcode locator strategy for iOS and Android
2221
- - note that for Android this might cause previous xpath selectors not to
2222
- work, since we now always set compressed hierarchy when getting the xml
2223
- dump used for xpath
2224
- - fix defaults for swipe duration
2225
- - add fixes for context switching
2226
- - add optional argument 'language' to getStrings
2227
- - update docs and code samples (including adding perl code samples)
2228
- - continue work on appium CI
2229
- - make sure we can't close already ended sessions
2230
- - upgrade all node deps besides express
2231
-
2232
- #### iOS
2233
- - add `-ios uiautomation` strategy doc
2234
-
2235
- #### Android
2236
- - allow for encoding of non-ASCII text
2237
- - clearer activity error messages
2238
- - add language and country support
2239
- - extract strings from apk corresponding to device language instead of default
2240
- to be used with ID locator strategy
2241
- - update complex find with new uiautomator constants
2242
- - upgrade Chromedriver to 2.10
2243
- - allow automation of Chrome Beta with browserName: `ChromeBeta`
2244
-
2245
- #### Selendroid
2246
- - update selendroid to 0.10.0
2247
- - add getStrings method
2248
-
2249
-
2250
- CHANGES IN VERSION 1.0.0 (from 1.0.0-beta.2)
2251
- =======================================
2252
-
2253
- #### General
2254
- - update python samples to use 1.0 style
2255
- - don't convert 'proxy' or 'launchTimeout' caps into strings
2256
- - make sure commit hooks use local grunt and mocha
2257
- - update some ruby samples to use 1.0 style
2258
- - add more 1.0 docs and sample code
2259
-
2260
- #### iOS
2261
- - fix mobile safari native tap on android by offsetting tap position by 40px
2262
- - go back to using unpatched UICatalog
2263
- - fix autoAcceptAlerts
2264
- - allow multiple calls to /contexts
2265
- - update appium-instruments with fix that would prevent the basic 'iPhone
2266
- Simulator' device from launching correctly
2267
-
2268
- #### Android
2269
- - fix gesture timing so it doesn't interpret ms as seconds
2270
-
2271
- #### Selendroid
2272
- - ensure selendroid isn't proxied appium endpoint commands
2273
-
2274
-
2275
- CHANGES IN VERSION 1.0.0-beta.2 (from 1.0.0-beta.1)
2276
- =======================================
2277
-
2278
- #### General
2279
- - extensive docs updates (make it ready for the new Slate docs)
2280
- - decode sequence of actions to native "swipe" method
2281
- - fix valid platform error message
2282
- - update WD dep
2283
- - fix proxying when session id is null
2284
- - allow spaces in appium folder name in reset.sh
2285
- - get rid of tag name loc strat in favor of class name
2286
-
2287
- #### Android
2288
- - allow for different input sets to mobile: find
2289
- - fix apk signing with custom keystore
2290
- - allow MultiActions without an element
2291
- - move chrome tests into their own emulator type
2292
- - fix async bug in getting xml dump
2293
- - use async.queue to ensure synchronicity of commands
2294
- - improve DumpWindowHierarchy so xpath queries don't crash
2295
-
2296
-
2297
- CHANGES IN VERSION 1.0.0-beta.1 (from 0.18.0)
2298
- =======================================
2299
-
2300
- #### General
2301
- - fix broken log options: --log, --log-no-colors, and --log-timestamp
2302
- - update docs to work with Jekyll
2303
- - change 'launch' desired cap to 'autoLaunch', same defaults
2304
- - fix installApp, launchApp, closeApp, removeApp to use correct app path
2305
- - fix bug in action handling for python client
2306
- - remove deprecated window handle support for native clients (in favor of contexts)
2307
- - remove deprecated old xpath support and promote the '-real xpath' strategy to the
2308
- default
2309
- - remove deprecated json page source in favor of xml
2310
- - remove deprecated mobile methods: location, fireEvent, waitForPageLoad,
2311
- findElementNameContains, localScreenshot, getCommandTimeout, findAndAct
2312
- - rewrite caps.md doc to use new 1.0 style caps
2313
- - remove deprecated --merciful and --device-port flags (add
2314
- --force-quit-instruments flag instead of -m)
2315
- - lots of docs reorganization and prep for new publishing method
2316
- - fix valid platform list
2317
- - update npm deps to latest (except for express)
2318
- - remove all deprecated "mobile: xxx" commands, except for gestures for now
2319
- - use new native methods from WD in testsuite
2320
-
2321
- #### iOS
2322
- - fix bug where iOS < 7.1 would try to ask instruments for available devices
2323
- - loosen up sudo check for authorize_ios so it can run without issue under sudo
2324
- - rename `nonSyntheticWebClick` cap to `nativeWebTap`, and turn it off by
2325
- default
2326
-
2327
- #### Android
2328
- - fix bug with XML page source where it wouldn't create the dump file correctly
2329
- - change caps with hyphens (-) like "app-package" to be camelCased like the
2330
- rest of Appium caps, e.g., "appPackage"
2331
- - fix bug with custom keystore apk signing
2332
- - allow multi actions without an element
2333
-
2334
- #### Selendroid
2335
- - fix command timeout bug
2336
-
2337
-
2338
- CHANGES IN VERSION 0.18.0 (from 0.17.6)
2339
- =======================================
2340
-
2341
- *Important*: This is the Appium 1.0 feature-complete pre-release. Please the
2342
- discussion group for more context and details about this release and where
2343
- Appium is headed in the near future.
2344
-
2345
- #### General
2346
- - disallow use of appium under sudo (except for authorize_ios)
2347
- - don't autopopulate node config host (so appium url can be set in nodeconfig)
2348
- - many build and test tweaks and fixes to improve build stability
2349
- - don't link commit hooks if we're not in a git repo
2350
- - add "accessibility id" locator strategy
2351
- - get rid of a bunch of unused grunt commands
2352
- - deprecate use of JSON page source (XML will be the standard)
2353
- - simplify reset strategy and make reset strategies available through caps.
2354
- There's now the default (fastReset), fullReset, and noReset.
2355
- - deprecate "tag name" locator strategy
2356
- - add real xpath support (for now under the "-real xpath" locator strategy)
2357
- - deprecate old xpath strategy
2358
- - a lot of work on appium CI
2359
- - further update new capability handling and device selection; use only the
2360
- new caps internally
2361
- - implement TouchAction and MultiTouch APIs
2362
- - migrate all "mobile: " methods to their own REST endpoints; they are now
2363
- deprecated
2364
- - don't allow users to send in bad platformNames; fail with an error instead
2365
- - allow app paths relative to appium root
2366
- - add command-line flags corresponding to the new desired capabilities
2367
-
2368
- #### iOS
2369
- - add "-ios uiautomation" locator strategy
2370
- - make backup path for built-in apps in ios 7.0 configurable
2371
- - only count one out of the two textfields which compose an ios 7.1 textfield
2372
- - introduce a distinction between global and post-launch timeouts for
2373
- instruments, to fine-tune flake management
2374
- - rewrite screenshot logic
2375
- - modify "mobile: scroll" to take an element argument
2376
- - fix bug where bundleID would be improperly lowercased
2377
- - allow changing of remote debugger ports with env variable
2378
- - fix bug in device launching logic that would try to launch an invalid device
2379
- as the default
2380
- - add "mobile: pullFile" support for retrieving files from the sim folders
2381
- - update fruitstrap to a version which doesn't segfault for Japanese
2382
-
2383
- #### Android
2384
- - make sure app is signed before getting MD5 hash for use in on-device install
2385
- - ensure that the app is always force-stopped before uninstalling the APK
2386
- - add "-android uiautomator" locator strategy
2387
- - fix bug involving storing android binary paths incorrectly
2388
- - add avdLaunchTimeout and avdReadyTimeout caps to fine-tune these timeouts
2389
- - retry launching AVD once if it never connects to adb
2390
- - if installing a remote apk fails, uninstall/rm, then retry
2391
-
2392
-
2393
- CHANGES IN VERSION 0.17.6 (from 0.17.6)
2394
- =======================================
2395
-
2396
- #### General
2397
- - disallow use of Appium in sudo mode
2398
- - ensure publishes happen with a version of Node which doesn't generate
2399
- shasum errors in NPM
2400
-
2401
-
2402
- CHANGES IN VERSION 0.17.5 (from 0.17.4)
2403
- =======================================
2404
-
2405
- #### Selendroid
2406
- - update Selendroid to 0.9.0
2407
-
2408
-
2409
- CHANGES IN VERSION 0.17.4 (from 0.17.3)
2410
- =======================================
2411
-
2412
- #### General
2413
- - fix "mobile: reset"
2414
- - use the new Context API (from [the spec
2415
- draft](https://code.google.com/p/selenium/source/browse/spec-draft.md?repo=mobile))
2416
- for switching back and forth between webviews. The window handles strategy
2417
- will be deprecated in 1.0
2418
- - update Wd.js to use a version with context support
2419
- - sanitize desired caps so they are always a manageable type
2420
-
2421
- #### iOS
2422
- - allow testing of iOS7.1 in Appium's testsuite/test.sh
2423
- - don't error out of pref path finding too soon if there are multiple dirs
2424
-
2425
- #### Android
2426
- - fix "mobile: push"
2427
- - fix fastReset going undefined between sessions
2428
- - add --avd-args server param to pass args to avd on boot
2429
- - various fixes for starting avds, including allowing multiple emulators to be
2430
- running
2431
- - fix getElement() to set isElement to false instead of throwing
2432
- - fix touch actions by fixing leaking state across executions
2433
- - remove fastClear and run `pm clear` on fastReset
2434
-
2435
- CHANGES IN VERSION 0.17.3 (from 0.17.2)
2436
- =======================================
2437
-
2438
- #### General
2439
- - add new desired capabilities handling to conform to the Selenium 3 spec. Use
2440
- of old desired capabilities will now be deprecated. See [the spec
2441
- draft](https://code.google.com/p/selenium/source/browse/spec-draft.md?repo=mobile) for more information
2442
-
2443
- #### Android
2444
- - fix process detection
2445
- - make sure temp dir exists before writing zipaligned apk to it
2446
-
2447
- CHANGES IN VERSION 0.17.2 (from 0.17.1)
2448
- =======================================
2449
-
2450
- This is simply a release to make Appium downloadable on npm.
2451
-
2452
- CHANGES IN VERSION 0.17.1 (from 0.17.0)
2453
- =======================================
2454
-
2455
- #### General
2456
- - move toward CI: build appium and run reset.sh on Travis
2457
-
2458
- #### iOS
2459
- - pass quiet flag to fruitstrap when in quiet mode
2460
- - update appium-instruments (which fixes retry behavior)
2461
-
2462
- #### Android
2463
- - fix uninstall detection
2464
-
2465
-
2466
- CHANGES IN VERSION 0.17.0 (from 0.16.0)
2467
- =======================================
2468
-
2469
- #### General
2470
- - fix maxBuffer error in installApp command
2471
- - rearchitect device extraction and configuration from args/caps, and add lots
2472
- of unit tests
2473
- - show non-default server params in server log for easier debugging
2474
- - add --command-timeout as a server arg
2475
- - don't ever use sudo to install npm submodules
2476
- - ensure appium's CWD is always the appium dir
2477
- - clear out commandTimeout between sessions, so subsequent sessions don't count
2478
- the session launching time as command time
2479
- - set npm submodules to track published branches
2480
- - relax requirements for unpacking zipfiles and finding app names
2481
-
2482
- #### iOS
2483
- - handle both binary and xml plists when changing ios settings plists
2484
- - break out appium-instruments into its own npm package
2485
- - fix bug where command line --force-iphone or --force-ipad wouldn't set
2486
- device. This should fix issues with Appium.app
2487
- - add --keep-keychains server arg / keepKeychains desired cap in order to
2488
- disallow deletion of Keychains dir
2489
- - bring reset behavior back to what it was before location services / settings
2490
- updates, so that with the default reset, most directories are still cleared
2491
- out
2492
- - use actual current ios sdk in reset.sh
2493
- - create plist basedirs if they don't exist
2494
- - add processArguments cap to pass args to AUT
2495
- - make --merciful the default
2496
- - require bundleId when using location services caps
2497
- - update UICatalog test app for 7.1
2498
- - fix duplicate textfield issue in iOS 7.1
2499
- - use new instruments `- w` param in iOS 7.1 to set device type
2500
- - add location and contact alert request buttons to TestApp
2501
-
2502
- #### iOS+Safari
2503
- - update initial webview navigation logic to work on 7.1
2504
- - if we start with a real webview, don't try to nav to webview through favs
2505
-
2506
- #### Android
2507
- - added support for 'direction' in scrollTo
2508
- - fix source command
2509
- - add longClick by position and duration
2510
- - fix reset.bat issues on Windows
2511
- - updated Windows installation instructions
2512
- - added --udid flag to reset.sh/bat, so it can uninstall from specific devices
2513
- - added support for touch{Down|Up|Move}
2514
- - add "mobile: push" and "mobile: pull" commands to send files to/from device
2515
- - ensure apks are always run through zipalign
2516
- - parse launch package and activity from apk, so that `app-package` and
2517
- `app-activity` caps are no longer required
2518
- - use better version of `isAppInstalled`
2519
-
2520
- #### Chrome+Android
2521
- - update bundled chromedriver to 2.9
2522
- - add enablePerformanceLogging cap
2523
-
2524
-
2525
- CHANGES IN VERSION 0.16.0 (from 0.15.0)
2526
- =======================================
2527
-
2528
- #### General
2529
- - auto-configure the host and port for nodes in an appium grid
2530
- - fix usage of temp folders on windows/linux
2531
- - allow better usage of reset.sh in windows git-bash
2532
- - add linking of pre-commit hook in reset.sh so everyone runs it
2533
-
2534
- #### iOS
2535
- - fix regression where special keys wouldn't be sent
2536
- - add `mobile: scroll` with direction: up/down/left/right to scroll views
2537
- - display correct error when app install/uninstall fails on real device
2538
- - update TestApp to show location services enabled status
2539
- - add `locationServicesAuthorized` cap
2540
- - add `locationServicesEnabled` cap
2541
- - add `safariIgnoreFraudWarning` cap
2542
- - add `safariAllowPopups` cap
2543
- - update uiauto js to retrieve references to app/windows dynamically every time
2544
-
2545
- #### iOS+Safari
2546
- - wait longer for webviews to appear in ios7
2547
- - return latest window with getWindowHandles()
2548
- - move hardcoded atoms out of appium into its own npm module which builds them
2549
- - add `nonSyntheticWebClick` cap to use atoms for click in ios7
2550
-
2551
- #### Android
2552
- - fix installing unlock app on windows paths with spaces
2553
- - add test coverage mechanism
2554
- - don't fail the test if we can't find strings.xml in an apk
2555
- - add hybrid support for webviews in 4.4+ apps
2556
- - fix `mobile: launchApp`
2557
-
2558
- #### Chrome+Android
2559
- - bundle chromedriver into appium itself, remove system dependency
2560
-
2561
- #### Selendroid
2562
- - remove requirement to manually update selendroid test apk path in test code
2563
- - update selendroid (with maven 3.1.1 requirement)
2564
-
2565
-
2566
- CHANGES IN VERSION 0.15.0 (from 0.14.2)
2567
- =======================================
2568
-
2569
- #### General
2570
- - fix for issue where logger would log colors even when asked not to
2571
- - stricter jshint rules enforceable from editor
2572
- - reformat/restructure test suite
2573
- - handle previously-unhandled errors when using spawn()
2574
- - fix startup bug (status object being taken as session id)
2575
- - clear sessionOverride instance var when cleaning up session
2576
- - fix regression where appium git revision wasn't shown in server output
2577
- - various testsuite tweaks/fixes
2578
-
2579
- #### iOS
2580
- - don't wait 30s for instruments to terminate
2581
- - use SIGKILL for instruments again
2582
- - allow ios logs to be not found without crashing appium
2583
- - allow automation of settings app via 'app: settings' cap
2584
- - don't crash if IDevice init fails (when requesting real device)
2585
- - don't try to remove app if it's not on the device
2586
- - escape single quotes for id search
2587
- - lint the uiauto js code
2588
- - allow accented characters in send_keys()
2589
- - delete the entire sim folder when using --full-reset (before & after)
2590
-
2591
- #### iOS+Safari
2592
- - allow safari to pre-launch
2593
- - don't tap apple button to get into webview on real device safari
2594
- - don't use synthetic click on real device safari
2595
- - fix undefined window handle bug
2596
- - fix safariLauncher crashes
2597
-
2598
- #### Android
2599
- - add new mobile methods: toggleData, toggleFlightMode, toggleWifi,
2600
- toggleLocationServices
2601
- - convert uiautomator error stream to string
2602
- - use a better method for finding build-tools and platform-tools dirs
2603
- - implement new version of longClick
2604
- - add `mobile: find` example
2605
- - return element's classname by selenium `tag_name` method/property
2606
- - add `app-wait-package` desired cap, to be used in concert with
2607
- `app-wait-activity`
2608
-
2609
- #### Chrome+Android
2610
- - fix unlock errors
2611
- - fix port-in-use bug which prevented automation of multiple chromes on
2612
- multiple emulators
2613
-
2614
- #### Selendroid
2615
- - upgrade to 0.8.0
2616
-
2617
-
2618
- CHANGES IN VERSION 0.14.2 (from 0.14.1)
2619
- =======================================
2620
-
2621
- #### General
2622
- - fix bug that prevented appium from starting in ios
2623
-
2624
- CHANGES IN VERSION 0.14.1 (from 0.14.0)
2625
- =======================================
2626
-
2627
- #### General
2628
- - fix bug that prevented appium from pre-launching without specified device
2629
-
2630
- #### iOS
2631
- - when alert title is null, return text instead
2632
- - add framework for setting iOS and app preferences via plists
2633
- - add `enableLocationServices` desired cap for enabling/disabling location
2634
- services on the simulator
2635
-
2636
- #### Android
2637
- - fix fast reset/clear logic to not fail when remote apk doesn't exist
2638
-
2639
- #### Selendroid
2640
- - actually wait for app-wait-activity instead of app-activity
2641
-
2642
-
2643
- CHANGES IN VERSION 0.14.0 (from 0.13.0)
2644
- =======================================
2645
-
2646
- #### General
2647
- - add ability to set launch timeout from command line
2648
- - require 'device' cap and fail without it
2649
- - bring back appium shell
2650
- - add new node examples
2651
- - add troubleshooting docs in Chinese
2652
- - fix app download suffix issue
2653
- - major refactor of test code
2654
-
2655
- #### iOS
2656
- - delete cache data for all versions of sim
2657
- - fix sporadic DOM corruption issue
2658
- - make reset.sh more Xcode 4.6 friendly
2659
- - add flag to show simulator logs in-line with appium logs
2660
- - add cap for automatically accepting photo permission alerts
2661
- - update appium doctor to read new auth db value
2662
- - keep track of ios crash logs and make available through selenium interface
2663
- - cleanup app state pre-test and post-test
2664
- - fix installing/removing .app (instead of .ipa)
2665
- - escalate to SIGKILL if instruments doesn't respond to SIGTERM
2666
- - add cap for using native instruments lib
2667
- - return accessibility hint as 'hint' attribute
2668
-
2669
- #### Android
2670
- - fix AVD startup bug
2671
- - better error handling in element finding code
2672
- - update ApiDemos app with webview
2673
- - support doing web testing against stock browser on 4.4
2674
- - increase support of android 4.4 toolchain
2675
- - fix multiple device issue
2676
- - implement `mobile: background` for android/selendroid
2677
- - fix custom keystore unzip call stack issue
2678
-
2679
- #### Chrome+Android
2680
- - add ability to deal with a different kind of session redirect
2681
- - kill chromedriver before starting it up again to clear out ports
2682
-
2683
- #### Selendroid
2684
- - re-instate closeApp and removeApp
2685
- - fix issue where selendroid would crash based on activity mangling,
2686
- resulting in a mysterious connection reset error
2687
- - upgrade to 0.7.0
2688
- - show selendroid logs in appium output
2689
-
2690
-
2691
- CHANGES IN VERSION 0.13.0 (from 0.12.3)
2692
- =======================================
2693
-
2694
- #### General
2695
- - add sauce reporting to ruby example
2696
- - normalize all ruby examples
2697
- - don't allow linux platforms to run ios doctor checks
2698
- - allow building of single platforms in reset.sh (don't delete other platforms)
2699
- - fix bug with --show-config & npm
2700
- - removed some unused tests
2701
- - remove retry support from appium test harness
2702
- - catch grid syntaxerror issue
2703
- - make sure gappium tests actually get run
2704
-
2705
- #### iOS
2706
- - update docs for setting up ios-webkit-debug-proxy
2707
- - fix authorize_ios
2708
- - make sure setLocale doesn't run on real devices
2709
- - give webviews a bit of time to show up before we say they aren't there
2710
- - fix the auth db doctor check to work for 10.7
2711
- - when launching simulator without instruments, wait for sim logs
2712
- - kill zombie sim daemon launchers
2713
- - update mobile: reset
2714
- - automatically retry launching instruments if it flakes out. The number of
2715
- retries can be set with `-r N` or `--backend-retries N`, where `N` is
2716
- the number of retries, including 0.
2717
- - add support for automating real Safari (and other built-in apps) in iOS7
2718
- - remove support for using iwebview as a Safari replacement
2719
- - when running mobile safari tests, automatically detect ios version
2720
- - update i-w-d for compatibility with xcode 5.1 / ios 7.1
2721
-
2722
- #### Android
2723
- - remove dependency on grep for real devices
2724
- - add 19.0.0 to possible build paths
2725
- - add tests for apk downloading and fix apk downloading issue
2726
- - check for API level >= 17 for uiautomator and fail sooner if not
2727
- - fix issue where calculating md5 of app would use too much memory, for large
2728
- apps
2729
- - fix bug with checking whether app already existed on device
2730
-
2731
- #### Selendroid
2732
- - give useful error message if user tries to run a uiautomator-based
2733
- "mobile: " command in selendroid
2734
- - update selendroid
2735
-
2736
-
2737
- CHANGES IN VERSION 0.12.3 (from 0.12.2)
2738
- =======================================
2739
-
2740
- #### General
2741
- - reset command timeout during mobile: reset
2742
- - fixes for strategy validation ('dynamic' and 'class name' are valid)
2743
- - add --show-config flag to dump appium config and exit
2744
- - add option to set newCommandTimeout to 0 or false to disable it entirely
2745
- rather than working around it by setting a high value
2746
- - refactor server/main.js -- things were getting ugly
2747
- - fix issue where ForceQuitUnresponsiveApps would try to run even on non-Mac
2748
- systems
2749
-
2750
- #### iOS
2751
- - change default device for iOS 6 to "iPhone" (non-retina)
2752
- - change Xcode 5.0.1 warning message to indicate an upgrade is possible now
2753
- - add --default-device flag to allow instruments to launch the sim like it
2754
- used to
2755
- - get rid of deprecated authorization strategy code
2756
- - include ForceQuitUnresponsiveApps output in appium log
2757
- - add --merciful (-m) flag to avoid running ForceQuitUnresponsiveApps. Show
2758
- Instruments a bit of mercy...or don't.
2759
-
2760
- #### Selendroid
2761
- - upgrade Selendroid to 0.7.0
2762
-
2763
-
2764
- CHANGES IN VERSION 0.12.2 (from 0.12.1b)
2765
- =======================================
2766
-
2767
- - None (npm fix release)
2768
-
2769
- CHANGES IN VERSION 0.12.1b (from 0.12.1)
2770
- =======================================
2771
-
2772
- - None (npm fix release)
2773
-
2774
- CHANGES IN VERSION 0.12.1 (from 0.12.0)
2775
- =======================================
2776
-
2777
- #### General
2778
- - add appium doctor for checking system config issues that prevent appium
2779
- from working properly. Run with `node bin/appium-doctor.js`, or
2780
- `appium-doctor` if installed via NPM, or via the GUI in Appium.app
2781
- - fail sooner if user passes in bad locator strategy
2782
- - fix app extracting logic
2783
-
2784
- #### iOS
2785
- - fix locale settings logic
2786
- - fix 64-bit device string
2787
- - fail with a nicer message if xcrun can't find instruments
2788
- - allow iwebview tests to automate https sites
2789
- - kill simulators before launching new ones
2790
- - automatically force quit unresponsive instruments processes
2791
-
2792
-
2793
- CHANGES IN VERSION 0.12.0 (from 0.11.4)
2794
- =======================================
2795
-
2796
- #### General
2797
- - make sure there's no color in console when --log-no-colors is used
2798
- - add more chinese docs
2799
- - allow periods in xpath node names
2800
- - update style guide
2801
- - bring all NPM dependencies up to date
2802
-
2803
- #### iOS
2804
- - mobile web: doc updates
2805
- - mobile web: make sure window.close() works on real devices
2806
- - mobile web: connect to most recent webview instead of first
2807
- - allow uiauto to get path to node binary from `node_bin` key in .appiumconfig
2808
- - fix automatic UDID detection
2809
- - improve webviewapp to be a safari replacement; can now be used for mobile
2810
- web automation using `app: iwebview`
2811
- - use `deviceName` cap to select specific iOS device
2812
- - mobile web: automatically accept popup window alerts
2813
- - give informative error message if ideviceinstaller isn't present
2814
- - add a wait after flick calls so client doesn't regain control before flick
2815
- has finished
2816
-
2817
- #### Android
2818
- - make sure chrome tests don't require package/activity
2819
- - make sure we force-stop apps before starting them
2820
- - fix issue with checking for package/activity for chrome
2821
- - make sure to kill any running uiautomator processes before test
2822
- - add `fastClear` desired cap, default true. If false, uses reinstall
2823
- instead of `pm clear` to reset an app
2824
- - anytime we call `dumpsys windows` when checking for screen lock, dump output
2825
- to $APPIUM_HOME/.dumpsys.log so we can learn more about error cases
2826
-
2827
-
2828
- CHANGES IN VERSION 0.11.4 (from 0.11.3)
2829
- =======================================
2830
-
2831
- #### General
2832
- - add ruby scrollTo example
2833
-
2834
- #### iOS
2835
- - fix dismissAlert / acceptAlert on ios7
2836
- - make instruments logging quiet by default (put verbose=true in
2837
- ~/.instruments.conf to re-enable)
2838
- - fix safarilauncher shutdown issue
2839
- - add tests for setting slider values
2840
- - set ios sim language using desired caps
2841
- - add more error handling in instruments_client
2842
-
2843
- #### Android
2844
- - fix issue with adb path and quote truncation
2845
- - fail with a nice message if app activity/package are not sent in
2846
-
2847
- #### Selendroid
2848
- - fix keyevent
2849
- - add command timeout tests
2850
-
2851
-
2852
- CHANGES IN VERSION 0.11.3 (from 0.11.2)
2853
- =======================================
2854
-
2855
- #### General
2856
- - remove wiki
2857
- - various doc updates
2858
- - reset command timeout for proxied devices (incl selendroid)
2859
- - translate docs to Chinese
2860
- - make desired capabilities returned by /session/:id non-hard-coded
2861
-
2862
- #### iOS
2863
- - add support for sim and devices for safari launcher
2864
- - major refactor of ios startup cascade
2865
- - fix tracetemplate detection logic
2866
- - add ability to select code-signing identity for safari launcher
2867
- - use securitydb for authorization on 10.9
2868
- - expose 'syslog' logs through selenium log interface
2869
-
2870
- #### Android
2871
- - various control flow/subprocess fixes
2872
- - don't uninstall app when --no-reset is used
2873
-
2874
- #### Selendroid
2875
- - update selendroid version
2876
-
2877
-
2878
-
2879
- CHANGES IN VERSION 0.11.2 (from 0.11.1)
2880
- =======================================
2881
-
2882
- #### General
2883
- - fix bug where running `appium` after installing via npm would error out
2884
- because the logger was not initialized correctly
2885
- - fix bug in reset.sh where setting --real-safari would cause android et al
2886
- not to build
2887
-
2888
-
2889
- CHANGES IN VERSION 0.11.1 (from 0.11.0)
2890
- =======================================
2891
-
2892
- #### General
2893
- - fix launch timeout bug
2894
- - update travis CI to use newer version of node
2895
- - remove .appiumconfig before running reset.sh
2896
- - update reset.sh to build safarilauncher for real devices only when
2897
- passing in the --real-safari flag
2898
- - made test.sh sh-compatible
2899
- - update all example code to use correct desired capabilities
2900
- - don't set content-length header for http POSTS with no body
2901
- - add more desired caps to docs
2902
- - expand on android setup for mac osx in docs
2903
- - remove multiple device handling code--appium just does one device at a time
2904
- per server
2905
- - handle command timeouts centrally rather than per-device
2906
- - add --log-timestamp and --log-no-colors options to server
2907
-
2908
- #### iOS
2909
- - fix sim control authorization on mavericks
2910
- - copy instead of symlink xpath/status into uiauto for non-breaking npm install
2911
- - fix cookie methods error case in mobile safari
2912
- - fail with an error message if user is on xcode 5.0.1 since it comes with
2913
- a broken instruments binary
2914
-
2915
- #### Android
2916
- - don't uninstall app on fast reset
2917
- - fix crash that occurred when no devices were connected
2918
- - fix unlock logic and change order of regex search
2919
- - correctly handle responses for element{Displayed|Enabled|Selected}
2920
- - refactor adb/android/uiautomator startup/shutdown logic to make
2921
- callback-based
2922
- - kill uiautomator if the startup cascade for android fails, so it doesn't
2923
- zombify
2924
-
2925
-
2926
- CHANGES IN VERSION 0.11.0 (from 0.10.4)
2927
- =======================================
2928
-
2929
- #### General
2930
- - make tempdirs uniquely named
2931
- - massive code reorganization
2932
- - retry getting a session in testsuite to avoid flaky fails
2933
-
2934
- #### iOS
2935
- - update ios alert handling
2936
- - use safariLauncher without 20/30 secs timeout
2937
- - allow .ipa extension for local apps
2938
-
2939
- #### Android
2940
- - clean app using `pm clear` instead of clean.apk
2941
- - massive refactor/rewrite of android/adb code
2942
- - fix dependency download error
2943
- - ensure all apks are signed
2944
-
2945
-
2946
- CHANGES IN VERSION 0.10.4 (from 0.10.3)
2947
- =======================================
2948
-
2949
- #### iOS
2950
- - add callback for remote debugger socket disconnect to avoid race conditions
2951
-
2952
- #### Android
2953
- - allow _ in package name
2954
- - add timeout for orientation change
2955
-
2956
-
2957
- CHANGES IN VERSION 0.10.3 (from 0.10.2)
2958
- =======================================
2959
-
2960
- #### General
2961
- - this is a bugfix release
2962
-
2963
- #### iOS
2964
- - compile the i-w-d shim correctly for ios7
2965
-
2966
-
2967
- CHANGES IN VERSION 0.10.2 (from 0.10.1)
2968
- =====================================
2969
-
2970
- #### General
2971
- - update docs
2972
- - README rewrite
2973
-
2974
- #### iOS
2975
- - allow spaces in xcode path
2976
- - completely reset and restart simulator between sessions
2977
- - turn CA_DEBUG_TRANSACTIONS on
2978
- - enable `authorize_ios` on Mavericks
2979
- - fix bug making handling alerts take longer than necessary
2980
-
2981
- #### Android
2982
- - update clean.apk
2983
- - refactored setOrientation
2984
- - fix screenshot method
2985
- - implement pinch in / out
2986
- - upgrade unlock.apk
2987
- - use pm uninstall/install in reset
2988
-
2989
- #### Windows
2990
- - lots of reset.bat improvements
2991
- - make some more paths windows friendly
2992
-
2993
-
2994
- CHANGES IN VERSION 0.10.1 (from 0.10.0)
2995
- =====================================
2996
-
2997
- #### Android
2998
- - add hybrid app docs
2999
- - fix unlock.apk for android 2.3
3000
- - get unlock.apk into build/ so prebuilt packages can use it
3001
-
3002
- #### Selendroid
3003
- - make unlock.apk work with selendroid
3004
- - change remote url for selendroid submodule
3005
- - update selendroid to 0.6.0
3006
-
3007
-
3008
- CHANGES IN VERSION 0.10.0 (from 0.9.1)
3009
- =====================================
3010
-
3011
- #### General
3012
- - update contributor style guide
3013
- - add some troubleshooting tips to doc
3014
- - update test.sh for a better testing flow
3015
-
3016
- #### iOS
3017
- - autodetect tracetemplate rather than bundling with appium
3018
- - choose version of instruments-without-delay based on xcode version
3019
- - get rid of --ios-sdk flag in reset.sh since appium now autodetects
3020
-
3021
- #### Android
3022
- - fix find elements by ID
3023
- - update clean.apk
3024
- - update touchevent for longpress
3025
- - add unlock.apk which is a more robust device unlock solution
3026
- - enable mobile chrome support on windows
3027
- - better support for tapping invisible elements
3028
-
3029
-
3030
- CHANGES IN VERSION 0.9.1 (from 0.9.0)
3031
- =====================================
3032
-
3033
- #### General
3034
- - add desired caps doc
3035
- - moveTo defaults to 0.5, 0.5
3036
- - add some more node/yiewd examples
3037
- - beefed up test.sh
3038
-
3039
- #### iOS
3040
- - fix issue with finding ids
3041
- - add --ios-sdk flag to reset.sh to choose between 6.1/7.0
3042
- - various ios 7 compatibility fixes
3043
- - significant refactor of ios session lifecycle code, fixing various issues
3044
- - add automatic UDID detection
3045
- - attempt to tap element's coordinates when typical method doesn't work
3046
- - support more types of zip archives
3047
-
3048
- #### Android
3049
- - restart adb up to 10 times instead of 2
3050
- - fix --avd launching bug
3051
- - fix swipe steps/duration logic (note: will affect test behavior)
3052
- - support metastate for keyevent
3053
-
3054
- #### Phonegap
3055
- - fix submodule issues
3056
-
3057
- _Historical Note_: This version of Appium was published by @jlipps in a moving
3058
- vehicle on a drive from Krakow, Poland to Warsaw, Poland. Thanks, @bkobos, for
3059
- the chaffeurship and wi-fi!
3060
-
3061
-
3062
- CHANGES IN VERSION 0.9.0 (from 0.8.5)
3063
- =====================================
3064
-
3065
- #### General
3066
- - update troubleshooting doc
3067
- - fix app unzip issue
3068
- - remove app/apk files from zip path before appium starts
3069
- - fix location of UICatalog in reset.sh
3070
- - fix reset.sh android device matching
3071
- - update ruby examples
3072
- - add chrome example in node
3073
- - improve python example code
3074
- - begin to migrate tests from wd to yiewd
3075
-
3076
- #### iOS
3077
- - respond to the last command even if instruments crashes
3078
- - don't attempt to reset real devices
3079
- - update instruments-without-delay with ios7 support
3080
- - add findById support (uses localization strings)
3081
- - add mobile: getStrings
3082
- - support setting value for sliders and switches with sendKeys()
3083
- - add preliminary support for ios7 with a different tracetemplate
3084
- - make mobile: localScreenshot more robust by fixing race condition
3085
- - add phonegap example
3086
-
3087
- #### Android
3088
- - don't require 'avd' to be set in order to install/uninstall to android
3089
- - dynamic find can use classmap aliases
3090
- - make it easy to run multiple android devices simultaneously
3091
- - support for dragFrom / dragTo functions in API level 18
3092
- - use resource-id for finding elements (findById)
3093
- - make getSize available
3094
- - make desired cap for compressedLayoutHierarchy
3095
- - add new version of unsign.jar
3096
- - fix stopCapture bug
3097
- - remove some deprecated methods (xmlKeyContains, etc)
3098
- - add mobile: getStrings
3099
- - always return true for click() (uiautomator bug)
3100
- - fix getAttribute to return strings instead of bool
3101
- - fix tests for use with now-required 4.3 emulator
3102
- - add phonegap example
3103
-
3104
- #### Selendroid
3105
- - track selendroid dev branch instead of master
3106
- - upgrade to selendroid 0.5.0
3107
-
3108
- #### Windows
3109
- - update docs
3110
- - some windows compat fixes
3111
-
3112
-
3113
- CHANGES IN VERSION 0.8.5 (from 0.8.4)
3114
- =====================================
3115
-
3116
- #### GENERAL
3117
- - reorder problematic async calls (issue #1000!)
3118
- - misc refactoring
3119
-
3120
- #### Android
3121
- - allow install/uninstall without device id
3122
- - fix race condition in starting chromedriver
3123
-
3124
- #### Selendroid
3125
- - update selendroid version
3126
- - fix issue preventing errors from proxying correctly
3127
-
3128
-
3129
- CHANGES IN VERSION 0.8.4 (from 0.8.3)
3130
- =====================================
3131
-
3132
- #### GENERAL
3133
- - some documentation updates
3134
- - give appium server a big http timeout so it doesn't drop connections
3135
-
3136
- #### Android
3137
- - make sure chromedriver tries to restart adb if it fails the first time
3138
- - add logcat retrieval for android and selendroid
3139
-
3140
- #### IOS
3141
- - allow use of --ipa and --app flags together
3142
- - try out a fix in mechanic.js for the (null) tap issues
3143
-
3144
-
3145
- CHANGES IN VERSION 0.8.3 (from 0.8.2)
3146
- =====================================
3147
-
3148
- #### GENERAL
3149
- - update various documentation (gestures, inspector tutorial, README)
3150
- - allow dashes in bundle/package IDs
3151
- - fix bad address startup error message
3152
- - use native function.bind() throughout instead of a mix of scoped objects
3153
- and underscore.bind()
3154
-
3155
- #### Android
3156
- - use UiAutomator for back() instead of keyevent
3157
- - use UiAutomator for keyCode instead of adb shell
3158
- - use UiAutomator for screenshot instead of adb shell
3159
-
3160
- ### IOS
3161
- - add some more mechanic aliases (keyboard, key)
3162
- - add pinch/zoom gestures
3163
- - add Java example for automating mobile safari
3164
- - automatically accept location services dialogs if we can access them
3165
- - accept text-based Info.plist files in addition to binary ones
3166
- - use reset.sh to download UICatalog rather than node/grunt
3167
-
3168
-
3169
- CHANGES IN VERSION 0.8.2 (from 0.8.1)
3170
- =====================================
3171
-
3172
- #### GENERAL
3173
- - make sure build/ is deleted by reset.sh
3174
- - re-publish without extraneous artifacts in build/
3175
-
3176
-
3177
- CHANGES IN VERSION 0.8.1 (from 0.8.0)
3178
- =====================================
3179
-
3180
- ### GENERAL
3181
- - update java examples to show correct use of JavascriptExecutor
3182
- - fix parser bug that prevented launching on windows
3183
- - fix missing parameter generating exceptions in testsuite
3184
- - fix more stdout maxBuffer errors
3185
- - fix android tests to use new activity style
3186
- - return timeout in set timeout commands
3187
-
3188
- ### IOS
3189
- - fix mobile safari alert-handling issues
3190
- - attempt to capture and resolve location services popup using desired cap
3191
-
3192
- ### ANDROID
3193
- - require shortcut activities to start with ".", allowing fully-qualified
3194
- activities with packages different from the main appPackage
3195
- - if appium fails to launch activity with ".", it will retry
3196
- - allow downloaded apps to end in .apk as well as .zip
3197
- - fix xpath parser error not allowing widget packages to be used
3198
- - add longClick command
3199
- - added JUnit and TestNG examples
3200
- - support ChromiumTestShell as well as Google Chrome for Chrome tests
3201
-
3202
- ### SELENDROID
3203
- - fall back to `am start` if Selendroid doesn't successfully launch the app
3204
-
3205
- CHANGES IN VERSION 0.8.0 (from 0.7.3)
3206
- =====================================
3207
- ### GENERAL
3208
- - bump maxBuffer for various subprocesses
3209
- - automatically re-register appium with grid if it disconnects
3210
- - augment style guide
3211
- - allow appium tests to read appium server port from $APPIUM_PORT
3212
-
3213
- ### IOS
3214
- - add support for locking device for X seconds
3215
- - add support for backgrounding app for X seconds
3216
- - make finding node/instruments_client more robust for instruments context
3217
- - mobile methods for installing/uninstalling apps to device
3218
- - add shortcut for UIACollectionCell and UIATableCell
3219
- - ensure isEnabled returns a boolean value
3220
-
3221
- ### ANDROID
3222
- - add mobile: searchId method to search for string by ID
3223
- - add mobile: resolveId method to resolve strings
3224
- - fix activity detection to be more allowing of different strings
3225
- - enable keystore for using different certs
3226
- - fix issue when large messages are transferred from bootstrap
3227
- - fix takesScreenshot capability
3228
- - add long tap method
3229
- - make screenshot work on windows
3230
- - fix scrollTo support
3231
-
3232
- ### CHROME
3233
- - add support for automating Chrome on Android!
3234
-
3235
- ### SELENDROID
3236
- - update selendroid to 90aef5d
3237
-
3238
- CHANGES IN VERSION 0.7.3 (from 0.7.2)
3239
- =====================================
3240
- ### IOS
3241
- - bugfix: authorize_ios needed #!
3242
-
3243
- CHANGES IN VERSION 0.7.2 (from 0.7.1)
3244
- =====================================
3245
- ### GENERAL
3246
- - make sure reset.sh checks for JAVA_HOME set for android/selendroid
3247
- - add mobile: reset docs
3248
- - alias POST /touch/click to POST /click
3249
-
3250
- ### IOS
3251
- - fix discrepancy between isDisplayed() and isVisible() and isEnabled()
3252
- - use new Automation.tracetemplate
3253
- - fixes for checking alerts in webviews
3254
- - page source now gets all windows, not just main window
3255
- - allow custom node path by setting NODE_BIN in a settings file
3256
- - add authorize_ios binary to npm install so npm users can authorize their ios
3257
- sim
3258
-
3259
- ### ANDROID
3260
- - use path.resolve in a cross-platform way
3261
-
3262
- ### SELENDROID
3263
- - fix use of adb from within selendroid
3264
- - keyevent support
3265
- - fix app-wait-activity
3266
-
3267
- CHANGES IN VERSION 0.7.1 (from 0.7.0)
3268
- =====================================
3269
- ### SELENDROID
3270
- - update to new version with new build instructions
3271
- - make selendroid port configurable
3272
-
3273
- ### WINDOWS
3274
- - fix use of exec and spawn so external commands work
3275
-
3276
- CHANGES IN VERSION 0.7.0 (from 0.6.1)
3277
- =====================================
3278
- ### GENERAL
3279
- - allow new session requests to override current session; this can be disabled
3280
- with the --no-session-override flag
3281
- - make sure reset.sh fails if android bootstrap can't build
3282
- - make --no-reset do what it's supposed to do, and fix description in docs
3283
- - check to make sure conflicting arguments aren't passed to the server before
3284
- launching
3285
- - removed deprecated flags completely (hence the minor version bump)
3286
- - bringing some error messages into line across platforms
3287
- - fix some issues with grunt building functions
3288
-
3289
- ### ANDROID
3290
- - add find element by ID (parses strings.xml)
3291
- - remove a sleep in bootstrap server that caused delays
3292
- - make sure app is uninstalled when not using fast reset
3293
- - make sure AndroidManifest.xml.apk is writable (for npm installed appium)
3294
- - make sure device wakes up / unlocks before running test
3295
- - add set geo location support
3296
- - clean up and fix issues relating to mid-session bootstrap.jar restart
3297
- - app-wait-activity now takes comma-separated list of valid activities
3298
-
3299
- ### IOS
3300
- - fix some tests
3301
- - fix mobile: reset
3302
-
3303
- CHANGES IN VERSION 0.6.1 (from 0.6.0)
3304
- =====================================
3305
- ### GENERAL
3306
- - started work on mobile_methods.md doc
3307
- - added hardcore mode to reset.sh that will refresh uicatalog inter alia
3308
- - ios-webkit-debug-proxy docs
3309
- - appium now registers correctly with selenium grid
3310
- - better bundle/package detection
3311
-
3312
- ### IOS
3313
- - mobile: setLocation and POST /location for setting geolocation
3314
- - updated tests to work with new uicatalog version
3315
- - allow registering a websocket handler for alerts
3316
- - escape sendKeys values so you can send '
3317
- - fixed up tests a little bit
3318
-
3319
- ### ANDROID
3320
- - fix fast reset race condition
3321
- - fix lack of AndroidManifest.xml.src in npm
3322
- - allow registering a websocket handler for alerts
3323
- - added method for getting location of element
3324
- - fixed package name for webviews
3325
-
3326
- CHANGES IN VERSION 0.6.0 (from 0.5.2)
3327
- =====================================
3328
- ### GENERAL
3329
- - initial Windows appium support (Android-only)
3330
- - reset.sh no longer fails silently if it errors
3331
- - added reset.bat for windows
3332
- - get status now returns actual appium version
3333
- - make sure reset.sh uninstalls android test apps if emulator is running
3334
- - include the git revision in the status object and in the logs at startup
3335
- - misc bugfixes
3336
-
3337
- ### IOS
3338
- - ability to talk to mobile Safari on a real device over USB
3339
- - added native back() method
3340
- - sendKeys now only taps on field if it doesn't already have focus
3341
-
3342
- ### ANDROID
3343
- - find by name checks to see if it found the element
3344
- - find by xpath no longer returns duplicate elements
3345
- - add support for ADT 22
3346
- - add "mobile: waitForPageLoad" that waits for indicators to clear
3347
- - fix scrollTo
3348
-
3349
- ### SELENDROID
3350
- - build selendroid modded servers in /tmp for npm
3351
- - fixed issue with running tests for multiple apps sequentially
3352
-
3353
- ### ROBOT
3354
- - initial support for robot automation (robot intercepts tap etc)
3355
-
3356
- ### APPIUM.EXE
3357
- - not strictly part of appium, but the Windows GUI has arrived in beta!
3358
-
3359
- CHANGES IN VERSION 0.5.2 (from 0.5.1)
3360
- =====================================
3361
- ### IOS
3362
- - fixed regression in mobile safari pre-launch
3363
-
3364
- CHANGES IN VERSION 0.5.1 (from 0.5.0)
3365
- =====================================
3366
- ### GENERAL
3367
- - updates to python examples
3368
- - refactored configuration code
3369
- - initial work making Appium's node code windows-compatible
3370
- - more lenient treatment of relationship between $HOME and system username
3371
-
3372
- ### IOS
3373
- - fixing webview not waiting for page loading on url nav issue
3374
- - added node-idevice which streamlines installing .ipas on real devices
3375
- - implement scrollTo
3376
- - fixed bug in xpath code which returned last element first
3377
-
3378
- ### ANDROID
3379
- - add some docs for installing HAXM
3380
- - add scroll_into_view for mobile: find
3381
- - completed android element class map
3382
-
3383
- ### SELENDROID
3384
- - http timeout tweaks
3385
-
3386
- CHANGES IN VERSION 0.5.0 (from 0.4.1)
3387
- =====================================
3388
- ### GENERAL
3389
- - significant change for command-line params for appium:
3390
- - --without-delay is now on by default. to turn it off, use
3391
- --native-instruments-lib if you don't want it
3392
- - --fast-reset is now on by default. to turn it off, use --full-reset
3393
- - --verbose is now on by default. to turn it off, use --quiet
3394
-
3395
- CHANGES IN VERSION 0.4.1 (from 0.4.0)
3396
- =====================================
3397
- ### GENERAL
3398
- - added --dev flag to reset.sh to optionally include test apps / dev deps
3399
- - added --verbose flag to reset.sh to optionally spew info (was default)
3400
- - reset.sh now puts all binaries in /build so it can be packaged and reused by
3401
- npm et al
3402
-
3403
- ### IOS
3404
- - added more Java examples
3405
-
3406
- ### SELENDROID
3407
- - updated selendroid to 56581e27b45c3a4483d89701fc893ac37b172e46
3408
-
3409
- CHANGES IN VERSION 0.4.0 (from 0.3.1)
3410
- =====================================
3411
- ### GENERAL
3412
- - more python examples including for android
3413
- - node android code example
3414
- - migrated wiki to appium/docs
3415
- - added troubleshooting docs
3416
- - added auto-tagging of repo on npm publish
3417
- - add a config check to make sure reset.sh was run for a specific device
3418
- before allowing appium to try to start a session with that device
3419
-
3420
- ### IOS
3421
- - various efforts to fix/workaround the (null).tap() issue in UIAutomation
3422
- - added shake()
3423
-
3424
- ### ANDROID
3425
- - partial match on content-desc
3426
- - find aapt in SDK or path
3427
- - better logging all around
3428
- - ensure app apk exists and fail if not
3429
- - added content-desc to all ApiDemos elements
3430
- - added --avd flag for launching emulator if not running
3431
- - added getName()
3432
- - fix mobile: find
3433
-
3434
- ### SELENDROID
3435
- - updated selendroid to 0.4
3436
- - don't re-build selendroid for each app, just re-insert manifest and build
3437
- selendroid in reset.sh instead
3438
-
3439
- ### FIREFOXOS
3440
- - Initial Firefox OS support landed!
3441
-
3442
- CHANGES IN VERSION 0.3.1 (from 0.3.0)
3443
- =====================================
3444
- ### GENERAL
3445
- - support for xpath indexes
3446
- - support for xpath last()
3447
- - docs specific to linux
3448
- - fix name of npm binary-plist dependency
3449
-
3450
- ### IOS
3451
- - update instruments-without-delay (fix #432)
3452
- - fix #437 (implicit wait didn't work after ios reset)
3453
- - when searching for @text, fall back to @label and @value
3454
- - allow @name to refer to @text, @label, and @value
3455
- - have "textfield" searches return "secure" fields as well
3456
- - add "collection" tag name
3457
- - make sure to do a clean build before building sample apps
3458
-
3459
- ### ANDROID
3460
- - fix xpath wildcard issue
3461
- - fix tag name selector
3462
- - alias "window" tag name to "frame"
3463
- - tweak flick timing
3464
- - have swipe/flick return errors if we know they didn't execute
3465
- - fix page source on real device
3466
- - use aapt rename to handle manifest stuff
3467
- - screenshot support
3468
- - support for the clear() method
3469
-
3470
- ### SELENDROID
3471
- - fix proxy behavior
3472
- - added example/test for selendroid webview
3473
- - add WebViewDemo app with tasks for building it
3474
-
3475
- CHANGES IN VERSION 0.3.0 (from 0.2.3)
3476
- =====================================
3477
- ### GENERAL
3478
- - Running tests with grunt will now not crash on first test failure
3479
- - Rewrote reset.sh to respect sudo and to run for individual platforms
3480
- - Changed markdown rendering engine and logic for generating appium.io from
3481
- README.md
3482
-
3483
- ### ANDROID
3484
- - Add "mobile: find" method for complex find combinations
3485
- - Check that clean.apk is signed
3486
- - Orientation support
3487
- - Update verify.jar to work on java 6
3488
- - Massive refactoring of adb.js
3489
- - Added Selendroid proxy support (!)
3490
-
3491
- CHANGES IN VERSION 0.2.3 (from 0.2.2)
3492
- =====================================
3493
- ### GENERAL
3494
- - removed bloated appium.io submodule, replaced with no-binary one
3495
- - Fix plist resetting regression (#342)
3496
- - Fix to ensure GET /sessions doesn't return false information
3497
-
3498
- ### IOS
3499
- - Allow instruments to find node binaries in MacPorts default location
3500
- - Allow instruments to find node binaries from Appium.app
3501
- - Rotate screenshots to match orientation of device
3502
- - Fix python examples
3503
- - Webview: add tests for implicit attributes
3504
- - Made sure window handles are always strings
3505
- - Reduced flakiness of swipe tests
3506
- - Added a Sauce Connect example
3507
- - C# example updates
3508
- - Fixed a few minor regressions
3509
-
3510
- ### ANDROID
3511
- - Large refactoring of bootstrap code
3512
- - Moved ApiDemos code into a submodule which is included and built for tests
3513
- - Fix install command
3514
- - Support for element-based swiping
3515
- - Use selenium touch actions for flick()
3516
- - Some error message improvements
3517
- - Make sure we lint adb.js
3518
-
3519
- CHANGES IN VERSION 0.2.2 (from 0.2.1)
3520
- =====================================
3521
- ### IOS
3522
- - safari: use js close() instead of clicking buttons to close windows
3523
- - webview: make title() always return title for default context
3524
- - webview: async javascript execute
3525
- - webview: fix when webelements are returned to client
3526
- - allow launching app via bundle id and not just app path
3527
- - webview: get/set/delete cookie(s)
3528
- - correctly rotate screenshot images if taken in landscape mode
3529
-
3530
- ### ANDROID
3531
- - add eclipse formatting file for bootstrap
3532
- - stop when activity fails to show up
3533
- - make content-desc search case-insensitive and partial
3534
- - allow launching emulator according to device id
3535
- - only sign app for clean apk once
3536
-
3537
- CHANGES IN VERSION 0.2.1 (from 0.2.0)
3538
- =====================================
3539
- ### GENERAL
3540
- - fix bug in npm dependencies (make swig a real dependency)
3541
-
3542
- ### IOS
3543
- - fixed scoping bug in alert handling
3544
- - get rid of --warp flag, instruments-without-delay is better
3545
- - safari: clear cookies/history/windows in between test runs
3546
-
3547
- CHANGES IN VERSION 0.2.0 (from 0.1.3)
3548
- =====================================
3549
- ### GENERAL
3550
- - updates to reset.sh
3551
- - host our own guinea pig html page for webview tests
3552
- - updated java examples and docs
3553
-
3554
- ### IOS
3555
- - webview: isActive()
3556
- - webview: submit()
3557
- - webview: clear()
3558
- - webview: selected()
3559
- - webview: implicit waits
3560
- - webview: location()
3561
- - webview: getName()
3562
- - webview: moveTo() and generalized click()
3563
- - webview: getWindowSize()
3564
- - webview: close()
3565
- - webview: don't allow alerts to cause webview requests to hang forever
3566
- - webview: find element(s) from element
3567
- - webview: get alert text
3568
- - webview: set prompt value
3569
- - allow pre-launching local zips/apps/safari from cli
3570
- - webview: allow execution in arbitrary frames
3571
- - "mobile: leaveWebView" special command instead of frame(null)
3572
- - webview: equalsElement()
3573
- - webview: back() and forward()
3574
- - webview: refresh()
3575
- - "mobile: fireEvent" for webview
3576
- - enable setting of device orientation through desired caps
3577
- - fix to not allow native commands to execute if webview command in progress
3578
- - bugfix in ios.js that left multiple remote debugger objs hanging around
3579
- - bumped command timeout since webview commands don't reset it
3580
-
3581
- ### ANDROID
3582
- - fix in swipe where steps weren't converted to integers
3583
- - "mobile: keyevent" for hitting arbitrary keys
3584
- - native back()
3585
- - xpath search by "*"
3586
- - skip uninstall if --fast-reset set
3587
- - better error handling if activity is not found
3588
- - match other kinds of button than android.widget.Button with "button"
3589
- - allow matching custom class name (partial class name matching)
3590
- - relaunch on failure (or on screen cap)
3591
- - begun work to get bootstrap in maven
3592
- - flick() as an alias of sorts for swipe()
3593
-
3594
- -- changes not tracked before v0.1.3 --