appium 2.0.0-beta.3 → 2.0.0-beta.30

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