appium 2.0.0-beta.9 → 2.0.0-rc.1

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