appium_lib_core 4.1.0 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +158 -275
  3. data/README.md +13 -8
  4. data/Rakefile +4 -0
  5. data/appium_lib_core.gemspec +5 -8
  6. data/bin/console +0 -4
  7. data/lib/appium_lib_core/android/device/auth_finger_print.rb +2 -1
  8. data/lib/appium_lib_core/android/device.rb +4 -4
  9. data/lib/appium_lib_core/common/base/bridge.rb +291 -92
  10. data/lib/appium_lib_core/common/base/capabilities.rb +8 -9
  11. data/lib/appium_lib_core/common/base/device_ime.rb +49 -0
  12. data/lib/appium_lib_core/common/base/driver.rb +225 -187
  13. data/lib/appium_lib_core/common/base/driver_settings.rb +51 -0
  14. data/lib/appium_lib_core/common/base/has_location.rb +80 -0
  15. data/lib/appium_lib_core/common/base/has_network_connection.rb +56 -0
  16. data/lib/appium_lib_core/common/base/http_default.rb +1 -3
  17. data/lib/appium_lib_core/common/base/remote_status.rb +31 -0
  18. data/lib/appium_lib_core/common/base/rotable.rb +54 -0
  19. data/lib/appium_lib_core/common/base/screenshot.rb +6 -6
  20. data/lib/appium_lib_core/common/base/search_context.rb +20 -5
  21. data/lib/appium_lib_core/common/base.rb +1 -3
  22. data/lib/appium_lib_core/common/command.rb +255 -4
  23. data/lib/appium_lib_core/common/device/app_management.rb +2 -14
  24. data/lib/appium_lib_core/common/device/image_comparison.rb +12 -4
  25. data/lib/appium_lib_core/common/device/keyevent.rb +4 -4
  26. data/lib/appium_lib_core/common/{command/mjsonwp.rb → device/orientation.rb} +14 -11
  27. data/lib/appium_lib_core/common/device/touch_actions.rb +2 -0
  28. data/lib/appium_lib_core/common/device/value.rb +6 -6
  29. data/lib/appium_lib_core/common/error.rb +4 -1
  30. data/lib/appium_lib_core/common/log.rb +4 -1
  31. data/lib/appium_lib_core/common/touch_action/multi_touch.rb +19 -0
  32. data/lib/appium_lib_core/common/touch_action/touch_actions.rb +16 -2
  33. data/lib/appium_lib_core/common/wait.rb +38 -6
  34. data/lib/appium_lib_core/device.rb +1 -5
  35. data/lib/appium_lib_core/driver.rb +41 -75
  36. data/lib/appium_lib_core/{patch.rb → element.rb} +66 -9
  37. data/lib/appium_lib_core/ios/uiautomation/patch.rb +1 -1
  38. data/lib/appium_lib_core/{common/base/command.rb → mac2/bridge.rb} +9 -8
  39. data/lib/appium_lib_core/mac2/device/screen.rb +48 -0
  40. data/lib/appium_lib_core/mac2/device.rb +92 -0
  41. data/lib/appium_lib_core/mac2.rb +17 -0
  42. data/lib/appium_lib_core/version.rb +2 -2
  43. data/lib/appium_lib_core.rb +2 -5
  44. metadata +29 -82
  45. data/.github/ISSUE_TEMPLATE/issue-report.md +0 -29
  46. data/.github/contributing.md +0 -26
  47. data/.github/issue_template.md +0 -20
  48. data/.github/workflows/unittest.yml +0 -68
  49. data/.gitignore +0 -18
  50. data/.rubocop.yml +0 -58
  51. data/azure-pipelines.yml +0 -15
  52. data/ci-jobs/functional/android_setup.yml +0 -3
  53. data/ci-jobs/functional/ios_setup.yml +0 -7
  54. data/ci-jobs/functional/publish_test_result.yml +0 -18
  55. data/ci-jobs/functional/run_appium.yml +0 -25
  56. data/ci-jobs/functional/start-emulator.sh +0 -26
  57. data/ci-jobs/functional_test.yml +0 -298
  58. data/docs/mobile_command.md +0 -34
  59. data/lib/appium_lib_core/common/base/bridge/mjsonwp.rb +0 -81
  60. data/lib/appium_lib_core/common/base/bridge/w3c.rb +0 -252
  61. data/lib/appium_lib_core/common/command/common.rb +0 -110
  62. data/lib/appium_lib_core/common/command/w3c.rb +0 -56
  63. data/release_notes.md +0 -816
  64. data/script/commands.rb +0 -200
data/CHANGELOG.md CHANGED
@@ -5,68 +5,203 @@ Read `release_notes.md` for commit level details.
5
5
  ## [Unreleased]
6
6
 
7
7
  ### Enhancements
8
- - Ruby 3.0 support
9
8
 
10
9
  ### Bug fixes
11
10
 
12
11
  ### Deprecations
13
12
 
14
- ## [4.1.0] - 2020-12-25
13
+ ## [5.5.0] - 2022-10-09
14
+
15
+ ### Bug fixes
16
+ - Removed forcefully converting keys of capabilities into symbol, which caused unexpected capabilities format issue [ruby_lib/945](https://github.com/appium/ruby_lib/issues/945)
17
+
18
+ ## [5.4.0] - 2022-10-01
15
19
 
16
20
  ### Enhancements
17
- - Ruby 3.0 support
21
+ - Append `selnium-webdriver` `4.5` support
18
22
 
19
- ### Bug fixes
23
+ ## [5.3.0] - 2022-08-10
20
24
 
21
- ### Deprecations
25
+ ### Enhancements
22
26
 
23
- ## [4.0.0] - 2020-12-19
27
+ - Allow selenium webdriver version 4.4 [#404](https://github.com/appium/ruby_lib_core/pull/404)
24
28
 
25
- Supported Ruby version is 2.4+
29
+ ## [5.2.2] - 2022-06-26
26
30
 
27
31
  ### Enhancements
32
+ - Relax the selenium webdriver version restriction of `4.2.0`
28
33
 
29
34
  ### Bug fixes
35
+ - Remove undefined module in selenium webdriver version `4.3.0`
30
36
 
31
- ### Deprecations
32
- - No longer work with `forceMjsonwp` capability to force the session MJSONWP
37
+ ## [5.2.1] - 2022-06-24
33
38
 
34
- ## [3.11.1] - 2020-11-20
39
+ ### Bug fixes
40
+ - Restrict the selenium webdriver version to `4.2.0`
41
+
42
+ ## [5.2.0] - 2022-06-19
35
43
 
36
44
  ### Enhancements
37
45
 
38
- ### Bug fixes
39
- - Fix `install_app` to be able to set no args for options
46
+ - Update base Selenium Ruby client to `4.2+`
47
+ - Please call `key_action` or set `[::Selenium::WebDriver::Interactions.key('keyboard')]` as the deviecs parameter to build `driver.send_keys().perform` W3C action.
48
+ - `driver.key_action.send_keys('xxx').perform` instead of `driver.action.send_keys('xxx').perform`, or `driver.action(devices: [::Selenium::WebDriver::Interactions.key('keyboard')]).send_keys('xxx').perform`.
49
+ - [This PR change](https://github.com/appium/ruby_lib_core/pull/381/files) will help to update your some actions.
40
50
 
41
- ### Deprecations
51
+ ## [5.1.2] - 2022-06-02
42
52
 
43
- ## [3.11.0] - 2020-08-01
53
+ ### Enhancements
54
+
55
+ - Limit selenium webdriver version less than `4.2`
56
+
57
+ ## [5.1.1] - 2022-04-18
44
58
 
45
59
  ### Enhancements
46
- - Security update [GHSA-2v5c-755p-p4gv](https://github.com/advisories/GHSA-2v5c-755p-p4gv)
47
- - Affects only _::Appium::Core::WebSocket_
60
+
61
+ - Remove unneccessry files from gem package to reduce the size.
62
+
63
+ ## [5.1.0] - 2021-12-25
64
+
65
+ ### Enhancements
66
+ - Make default pointerType `touch` for the pointer in W3C actions instead of `mouse` for Appium
67
+ - This change should not affect W3C actions
68
+
69
+ ## [5.0.3] - 2021-12-13
70
+
71
+ ### Enhancements
72
+ - Can add more arguments in `install_app`
73
+ - e.g. Add `timeoutMs` for XCUITest driver as `@driver.install_app("/path/to/test.ipa", timeoutMs: 20000)`
48
74
 
49
75
  ### Bug fixes
76
+ - (internal) Allow to access to `bridge` attribute in `driver` instance for appium_flutter_finder
77
+
78
+ ## [5.0.2] - 2021-12-01
79
+
80
+ ### Bug fixes
81
+ - (internal) Fix firstMatch format in a new session creation
82
+
83
+ ## [5.0.1] - 2021-11-23
84
+
85
+ ### Enhancements
86
+ - Relaxed version restriction of selenium-webdriver
87
+
88
+ ## [5.0.0] - 2021-11-05
89
+
90
+ ### Enhancements
91
+
92
+ - Update base selenium webdriver version to `v4`
93
+ - Base Selenium Ruby binding is now v4
94
+ - Support only W3C WebDriver spec (and a few Appium specific commands)
95
+ - Support Ruby 2.6+
96
+ - Add `driver#wait`, `driver#wait_until`, `driver#wait_true`, `driver#wait_until_true` syntaxes
97
+ - Can give `driver` instance as its block variable
98
+ - `element.id` returns the element id instead of `element.ref`.
99
+ - `element.ref` now returns an array.
100
+ - Removed `desired_capabilities` as capabilities for `Appium::Core#for`. Please use `capabilities` key name instead.
101
+ - e.g. `Appium::Core.for capabilities: {...}` instead of `Appium::Core.for desired_capabilities: {...}`
102
+ - Removed methods that had _Deprecated_ mark
103
+ - Removed `driver#screenshot`. Please use `driver#save_screenshot` instead
104
+ - Removed `driver#send_keys` to send keys to an active element. Please use `driver.action.send_keys('happy testing').perform` instead
105
+ - Removed `forceMjsonwp` to send only MJSONWP capabilities since Selenium cleint v4 no longer supports MJSONWP
106
+ - No longer set default `timeouts` as `0`
107
+ - ruby_lib_core calls `/timeouts` endpoint only when `appium_lib: { wait: 5 }` is provided explicitly
108
+ - Raises `::Appium::Core::Error::ArgumentError` instead of `ArgumentError` for this library specific argument errors
109
+ - Removed Selendroid related methods
50
110
 
51
111
  ### Deprecations
112
+ - `Appium::Core::TouchAction` and `Appium::Core::MultiTouch` are deprecated
113
+ - Please use W3C actions instead http://appium.io/docs/en/commands/interactions/actions/
114
+ - More working examples:
115
+ - [test/functional/android/webdriver/w3c_actions_test.rb](test/functional/android/webdriver/w3c_actions_test.rb)
116
+ - [test/functional/ios/webdriver/w3c_actions_test.rb](test/functional/ios/webdriver/w3c_actions_test.rb)
117
+ - [test/functional/common_w3c_actions.rb](test/functional/common_w3c_actions.rb)
118
+ - https://www.selenium.dev/documentation/support_packages/mouse_and_keyboard_actions_in_detail/
119
+ - https://www.youtube.com/watch?v=oAJ7jwMNFVU
120
+ - https://appiumpro.com/editions/30-ios-specific-touch-action-methods
121
+ - https://appiumpro.com/editions/29-automating-complex-gestures-with-the-w3c-actions-api
122
+ - `launch_app`, `close_app` and `reset`. Please read [issues#15807](https://github.com/appium/appium/issues/15807) for more details.
123
+ - `activate_app` or a new session request can be alternatives of `launch_app`
124
+ - `terminate_app` or close the session request can be alternatives of `close_app`
125
+ - Close current session and creating a new session, or `terminate_app` and `launch_app` can be alternatives of `reset`
52
126
 
53
- ## [3.10.1] - 2020-06-29
127
+ ## [4.7.1] - 2021-09-26
54
128
 
55
129
  ### Enhancements
130
+ - Allow to override an existing method by `Appium::Core::Base::Driver#add_command` since Appium drivers/plugins allow to override them
56
131
 
57
- ### Bug fixes
58
- - Fix duplication warning of `execute_cdp`
132
+ ## [4.7.0] - 2021-07-17
133
+
134
+ ### Enhancements
135
+ - Add `satellites` option in `Appium::Core::Base::Driver#set_location`
136
+
137
+ ## [4.6.0] - 2021-06-03
138
+
139
+ ### Enhancements
140
+ - Add `Appium::Core::Base::Driver#add_command` to allow you to add your own command
141
+
142
+ ## [4.5.0] - 2021-03-14
143
+
144
+ ### Enhancements
145
+ - Add `speed` argument for `Appium::Core::Base::Driver#set_location` since Appium 1.21.0
146
+ - Add `multiple` and `match_neighbour_threshold` arguments for `Appium::Core::Base::Driver#find_image_occurrence`
147
+
148
+ ## [4.4.1(4.4.0)] - 2021-02-15(2021-02-13)
149
+
150
+ ### Enhancements
151
+ - Returns `{}` any errors in `Core#appium_server_version` to prevent errors in some cases
152
+
153
+ ## [4.3.1(4.3.0)] - 2021-02-07(2021-02-05)
154
+
155
+ ### Enhancements
156
+ - Add `start_recording_screen` for Mac2 driver
157
+
158
+ ## [4.2.1] - 2021-01-10
159
+
160
+ ### Enhancements
161
+ - Refactor routable
162
+
163
+ ## [4.2.0] - 2021-01-02
164
+
165
+ ### Enhancements
166
+ - Add `Element#screenshot`, `Element#screenshot_as` and `Element#save_screenshot` in Element module
167
+ - `Element#screenshot_as` and `Element#save_screenshot` are same as `Driver#element_screenshot_as` and `Driver#save_element_screenshot`
168
+ - `Element#screenshot` is same as `Element#screenshot_as(:base64)`
169
+
170
+ ## [4.1.1] - 2020-12-25
171
+
172
+ ### Enhancements
173
+ - Ruby 3.0 support
174
+ - Arguments in `@driver.execute_cdp`
175
+ - It should be like `@driver.execute_cdp 'Page.captureScreenshot', quality: 50, format: 'jpeg'` as keyword arguments
176
+ instead of `@driver.execute_cdp 'Page.captureScreenshot', { quality: 50, format: 'jpeg' }` in Ruby 3
177
+
178
+ ## [4.0.0] - 2020-12-19
179
+
180
+ Supported Ruby version is 2.4+
59
181
 
60
182
  ### Deprecations
183
+ - No longer work with `forceMjsonwp` capability to force the session MJSONWP
61
184
 
62
- ## [3.10.0] - 2020-06-09
185
+ ## [3.11.1] - 2020-11-20
186
+
187
+ ### Bug fixes
188
+ - Fix `install_app` to be able to set no args for options
189
+
190
+ ## [3.11.0] - 2020-08-01
63
191
 
64
192
  ### Enhancements
65
- - Remove deprecated `Selenium::WebDriver::Error::TimeOutError`
193
+ - Security update [GHSA-2v5c-755p-p4gv](https://github.com/advisories/GHSA-2v5c-755p-p4gv)
194
+ - Affects only _::Appium::Core::WebSocket_
195
+
196
+ ## [3.10.1] - 2020-06-29
66
197
 
67
198
  ### Bug fixes
199
+ - Fix duplication warning of `execute_cdp`
68
200
 
69
- ### Deprecations
201
+ ## [3.10.0] - 2020-06-09
202
+
203
+ ### Enhancements
204
+ - Remove deprecated `Selenium::WebDriver::Error::TimeOutError`
70
205
 
71
206
  ## [3.9.0] - 2020-05-31
72
207
 
@@ -86,10 +221,6 @@ Supported Ruby version is 2.4+
86
221
  @driver = Appium::Core.for(opts).start_driver
87
222
  ```
88
223
 
89
- ### Bug fixes
90
-
91
- ### Deprecations
92
-
93
224
  ## [3.8.0] - 2020-05-17
94
225
 
95
226
  ### Enhancements
@@ -99,8 +230,6 @@ Supported Ruby version is 2.4+
99
230
  ### Bug fixes
100
231
  - Fix `x-idempotency-key` header to add it only in new session request (https://github.com/appium/ruby_lib_core/issues/262)
101
232
 
102
- ### Deprecations
103
-
104
233
  ## [3.7.0] - 2020-04-18
105
234
 
106
235
  ### Enhancements
@@ -109,76 +238,44 @@ Supported Ruby version is 2.4+
109
238
  - Add chrome devtools endpoint which is available chrome module in Selenium Ruby binding
110
239
  - https://github.com/appium/appium-base-driver/pull/405
111
240
 
112
- ### Bug fixes
113
-
114
- ### Deprecations
115
-
116
241
  ## [3.6.1, 3.6.0] - 2020-03-15
117
242
 
118
243
  ### Enhancements
119
244
  - Add screen record feature for Windows driver (https://github.com/appium/appium-windows-driver/pull/66)
120
245
  - `#start_recording_screen`, `#stop_recording_screen`
121
246
 
122
- ### Bug fixes
123
-
124
- ### Deprecations
125
-
126
247
  ## [3.5.0] - 2020-01-11
127
248
 
128
249
  ### Enhancements
129
250
  - Add `:viewmatcher` selector like `@driver.find_elements :view_matcher, { name: 'withText', args: %w(Accessibility), class: 'androidx.test.espresso.matcher.ViewMatchers' }`
130
251
 
131
- ### Bug fixes
132
-
133
- ### Deprecations
134
-
135
252
  ## [3.4.2] - 2019-12-29
136
253
 
137
254
  ### Enhancements
138
255
  - Add `attr_reader :bridge` for flutter driver not to use `send`
139
256
  - https://github.com/truongsinh/appium-flutter-driver/pull/35
140
257
 
141
- ### Bug fixes
142
-
143
- ### Deprecations
144
-
145
258
  ## [3.4.0, 3.4.1] - 2019-12-26, 2019-12-27
146
259
 
147
260
  ### Enhancements
148
261
  - Fix Ruby 2.7 warnings
149
262
 
150
- ### Bug fixes
151
-
152
- ### Deprecations
153
-
154
263
  ## [3.3.0] - 2019-11-08
155
264
 
156
265
  ### Enhancements
157
266
  - Add `Logs#event` to post a custom log by `@driver.logs.event vendor: 'appium', event: 'funEvent'`
158
267
  - Add `Logs#events` to get events by `@driver.logs.events`. It is equal to `@driver.session_capabilities['events']`
159
268
 
160
- ### Bug fixes
161
-
162
- ### Deprecations
163
-
164
269
  ## [3.2.3] - 2019-09-30
165
270
 
166
271
  ### Enhancements
167
272
  - Add `system_bars` as an alias to `get_system_bars`
168
273
 
169
- ### Bug fixes
170
-
171
- ### Deprecations
172
-
173
274
  ## [3.2.2] - 2019-08-04
174
275
 
175
- ### Enhancements
176
-
177
276
  ### Bug fixes
178
277
  - Fixed parameters of `remove_app`
179
278
 
180
- ### Deprecations
181
-
182
279
  ## [3.2.1] - 2019-07-19
183
280
 
184
281
  ### Enhancements
@@ -200,39 +297,23 @@ Supported Ruby version is 2.4+
200
297
  - Add `execute_driver` to run a batch script
201
298
  - It requires Appium version which has `execute_driver` support
202
299
 
203
- ### Bug fixes
204
-
205
- ### Deprecations
206
-
207
300
  ## [3.1.3] - 2019-06-18
208
301
 
209
302
  ### Enhancements
210
303
  - Add arguments for `start_activity`
211
304
  - `intentAction`, `intentCategory`, `intentFlags`, `dontStopAppOnReset`
212
305
 
213
- ### Bug fixes
214
-
215
- ### Deprecations
216
-
217
306
  ## [3.1.2] - 2019-05-10
218
307
 
219
308
  ### Enhancements
220
309
  - Add `sessions` command to get all available sessions on the Appium server
221
310
  - [internal] Tweak error messages in emulator module
222
311
 
223
- ### Bug fixes
224
-
225
- ### Deprecations
226
-
227
312
  ## [3.1.1] - 2019-04-26
228
313
 
229
314
  ### Enhancements
230
315
  - [internal] Catch `Selenium::WebDriver::Error::TimeoutError` which will be used instead of `Selenium::WebDriver::Error::TimeOutError`
231
316
 
232
- ### Bug fixes
233
-
234
- ### Deprecations
235
-
236
317
  ## [3.1.0] - 2019-03-31
237
318
 
238
319
  ### Enhancements
@@ -240,28 +321,16 @@ Supported Ruby version is 2.4+
240
321
  - `platformName: :tvos, automationName: :xcuitest` can work for iOS tvOS
241
322
  - It requires Appium 1.13
242
323
 
243
- ### Bug fixes
244
-
245
- ### Deprecations
246
-
247
324
  ## [3.0.4] - 2019-03-24
248
325
 
249
326
  ### Enhancements
250
327
  - Add `pixelFormat` argument in screen record for iOS
251
328
 
252
- ### Bug fixes
253
-
254
- ### Deprecations
255
-
256
329
  ## [3.0.3] - 2019-03-11
257
330
 
258
331
  ### Enhancements
259
332
  - [internal] Bump Rubocop target Ruby version to Ruby 2.3
260
333
 
261
- ### Bug fixes
262
-
263
- ### Deprecations
264
-
265
334
  ## [3.0.2] - 2019-03-07
266
335
 
267
336
  ### Enhancements
@@ -271,17 +340,11 @@ Supported Ruby version is 2.4+
271
340
  - [internal] Fixed typo in `Emulator#gsm_signal` [#196](https://github.com/appium/ruby_lib_core/pull/196)
272
341
  - Thanks [khanhdodang](https://github.com/khanhdodang)
273
342
 
274
- ### Deprecations
275
-
276
343
  ## [3.0.1] - 2019-02-25
277
344
 
278
345
  ### Enhancements
279
346
  - Add `:data_matcher` find_element/s attribute [appium-espresso-driver#386](https://github.com/appium/appium-espresso-driver/pull/386)
280
347
 
281
- ### Bug fixes
282
-
283
- ### Deprecations
284
-
285
348
  ## [3.0.0] - 2019-02-06
286
349
 
287
350
  This release has a breaking change about an implicit wait.
@@ -307,8 +370,6 @@ The behaviour follows the default spec in WebDriver.
307
370
  ### Bug fixes
308
371
  - Fix potential override of `AppManagement#background_app` [#188](https://github.com/appium/ruby_lib_core/pull/188)
309
372
 
310
- ### Deprecations
311
-
312
373
  ## [2.3.4] - 2019-01-31
313
374
  ### Enhancements
314
375
  - Add 3D touch option for `TouchAction#press` [appium/WebDriverAgent#79](https://github.com/appium/WebDriverAgent/pull/79)
@@ -317,16 +378,10 @@ The behaviour follows the default spec in WebDriver.
317
378
  ### Bug fixes
318
379
  - Stop sending blank value in `start_activity`
319
380
 
320
- ### Deprecations
321
-
322
381
  ## [2.3.3] - 2019-01-22
323
- ### Enhancements
324
-
325
382
  ### Bug fixes
326
383
  - Add `*args, &block` in method missing in `Selenium::WebDriver::Element` [#184](https://github.com/appium/ruby_lib_core/pull/184)
327
384
 
328
- ### Deprecations
329
-
330
385
  ## [2.3.2] - 2019-01-20
331
386
  ### Enhancements
332
387
  - Add alias for some method calls
@@ -337,18 +392,12 @@ The behaviour follows the default spec in WebDriver.
337
392
  ### Bug fixes
338
393
  - `ServerError` inherits `CoreError` in order to handle it as an exception
339
394
 
340
- ### Deprecations
341
-
342
395
  ## [2.3.1] - 2019-01-13
343
396
  ### Enhancements
344
397
  - `set_network_connection` accepts keys as same as `network_connection_type` in addition to numbers
345
398
  - `{ :airplane_mode: 1, wifi: 2, data: 4, all: 6, none: 0 }`
346
399
  - Read [documentation](https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device#set_network_connection-instance_method) more
347
400
 
348
- ### Bug fixes
349
-
350
- ### Deprecations
351
-
352
401
  ## [2.3.0] - 2019-01-07
353
402
  ### Enhancements
354
403
  - Use `Base64.strict_encode64` when this client sends `Base64` encoded data to server
@@ -356,33 +405,19 @@ The behaviour follows the default spec in WebDriver.
356
405
  - Continues to decode base 64 data following `decode64` to accept RFC 2045 format
357
406
  - Add `query_app_state` as an alias of `app_state` to get application status
358
407
 
359
- ### Bug fixes
360
-
361
- ### Deprecations
362
-
363
408
  ## [2.2.2] - 2018-12-22
364
409
  ### Enhancements
365
410
  - Append `appium` in header: `appium/ruby_lib_core/2.2.1 (selenium/3.141.0 (ruby macosx))`
366
411
 
367
- ### Bug fixes
368
-
369
- ### Deprecations
370
-
371
412
  ## [2.2.1] - 2018-12-08
372
- ### Enhancements
373
-
374
413
  ### Bug fixes
375
414
  - Reduce warnings for method definitions
376
415
 
377
- ### Deprecations
378
-
379
416
  ## [2.2.0] - 2018-12-01
380
417
  ### Enhancements
381
418
  - Add `::Appium::Core::Base.platform` to call `::Selenium::WebDriver::Platform`
382
419
  - Can identify platform using `::Appium::Core::Base.platform.windows?` for example
383
420
 
384
- ### Bug fixes
385
-
386
421
  ### Deprecations
387
422
  - `:offset_x` and `:offset_y` in `TouchAction#swipe` is deprecated in favor of `:end_x` and `:end_y`
388
423
 
@@ -401,10 +436,6 @@ The behaviour follows the default spec in WebDriver.
401
436
  - Update `start_recording_screen` for iOS, Appium 1.10.0
402
437
  - Add `:video_scale` and update `:video_type`
403
438
 
404
- ### Bug fixes
405
-
406
- ### Deprecations
407
-
408
439
  ## [2.1.0] - 2018-11-14
409
440
  ### Enhancements
410
441
  - Support below style _1_, has _url_ parameter, in addition to style _2_
@@ -417,27 +448,15 @@ The behaviour follows the default spec in WebDriver.
417
448
  ```
418
449
  - Add `:video_fps` param for screen recording in iOS(XCUITest) to sync with Appium 1.10.0
419
450
 
420
- ### Bug fixes
421
-
422
- ### Deprecations
423
-
424
451
  ## [2.0.6] - 2018-11-08
425
452
  ### Enhancements
426
453
  - Allow selenium update following Pi versioning like 3.141.0
427
454
  - [internal] Update dev libraries
428
455
 
429
- ### Bug fixes
430
-
431
- ### Deprecations
432
-
433
456
  ## [2.0.5] - 2018-10-30
434
457
  ### Enhancements
435
458
  - [internal] No longer send `strategy: :tapOutside` as default value in Android
436
459
 
437
- ### Bug fixes
438
-
439
- ### Deprecations
440
-
441
460
  ## [2.0.4] - 2018-10-19
442
461
  ### Enhancements
443
462
  - Add custom locator in the future work: [element-finding-plugins](https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/element-finding-plugins.md)
@@ -447,27 +466,15 @@ The behaviour follows the default spec in WebDriver.
447
466
 
448
467
  ```
449
468
 
450
- ### Bug fixes
451
-
452
- ### Deprecations
453
-
454
469
  ## [2.0.3] - 2018-10-11
455
470
  ### Enhancements
456
471
  - Set `'selenium-webdriver', '~> 3.14.1'`
457
472
 
458
- ### Bug fixes
459
-
460
- ### Deprecations
461
-
462
473
  ## [2.0.2] - 2018-10-02
463
474
  ### Enhancements
464
475
  - Add finger print feature for Android emulators [#13](https://github.com/appium/ruby_lib_core/issues/13)
465
476
  - Add `keyboard_shown?` and `context=` as aliases of `is_keyboard_shown` and `set_contex`
466
477
 
467
- ### Bug fixes
468
-
469
- ### Deprecations
470
-
471
478
  ## [2.0.1] - 2018-09-01
472
479
  ### Enhancements
473
480
  - Add `Appium::Core::Base::Driver#perform_actions` to send multiple actions. See `test_multiple_actions` as an example.
@@ -475,8 +482,6 @@ The behaviour follows the default spec in WebDriver.
475
482
  ### Bug fixes
476
483
  - Fix desired capability for W3C protocol under selenium grid environment [#137](https://github.com/appium/ruby_lib_core/issues/137)
477
484
 
478
- ### Deprecations
479
-
480
485
  ## [2.0.0] - 2018-08-25
481
486
 
482
487
  This release has a breaking change for creating core. Thus, I've bumped the major version.
@@ -484,20 +489,14 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
484
489
  ### Enhancements
485
490
  - use `autoload` to load Android/iOS modules
486
491
 
487
- ### Bug fixes
488
-
489
492
  ### Deprecations
490
493
  - `@core = Appium::Core.for(self, opts)` is deprecated in favor of `@core = Appium::Core.for(opts)`
491
494
  - Call `extend Appium::Core::Device` if you'd like to extend methods defined in `Appium::Core`
492
495
  - Read [#816](https://github.com/appium/ruby_lib/pull/816) as an example
493
496
 
494
497
  ## [1.9.2] - 2018-08-23
495
- ### Enhancements
496
-
497
498
  ### Bug fixes
498
- - fix unexpedted method missing against `:to_hash` in Element
499
-
500
- ### Deprecations
499
+ - fix unexpected method missing against `:to_hash` in Element
501
500
 
502
501
  ## [1.9.1] - 2018-08-20
503
502
  ### Enhancements
@@ -507,8 +506,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
507
506
  ### Bug fixes
508
507
  - [internal] Fix raising error in `set_implicit_wait_by_default` [#130](https://github.com/appium/ruby_lib_core/issues/130)
509
508
 
510
- ### Deprecations
511
-
512
509
  ## [1.9.0] - 2018-08-05
513
510
  ### Enhancements
514
511
  - Update documentation about `start_recording_screen`
@@ -516,8 +513,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
516
513
  - Support `find_element/s :image, partial_image` [#119](https://github.com/appium/ruby_lib_core/pull/119)
517
514
  - Requires `selenium-webdriver 3.14+` because of W3C actions [#115](https://github.com/appium/ruby_lib_core/pull/115)
518
515
 
519
- ### Bug fixes
520
-
521
516
  ### Deprecations
522
517
  - [Internal] Deprecate experimental `ImageElement` in favor of `Element`
523
518
 
@@ -527,10 +522,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
527
522
  - Use method missing to get attributes like `e.resource_id` instead of `e.attribute 'resource-id'` [#116](https://github.com/appium/ruby_lib_core/pull/116)
528
523
  - Set `'~> 3.5', '< 3.14'`
529
524
 
530
- ### Bug fixes
531
-
532
- ### Deprecations
533
-
534
525
  ## [1.8.3] - 2018-07-20
535
526
  ### Enhancements
536
527
  - Relax the logic of `:app` capability
@@ -538,11 +529,7 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
538
529
  ### Bug fixes
539
530
  - Fix `within_context`
540
531
 
541
- ### Deprecations
542
-
543
532
  ## [1.8.2] - 2018-07-17
544
- ### Enhancements
545
-
546
533
  ### Bug fixes
547
534
  - Available packages over HTTP [#106](https://github.com/appium/ruby_lib_core/issues/106)
548
535
 
@@ -550,23 +537,15 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
550
537
  - Remove warning of camelCase capability for W3C format
551
538
 
552
539
  ## [1.8.1] - 2018-07-13
553
- ### Enhancements
554
-
555
540
  ### Bug fixes
556
541
  - Fix including search context in `::Selenium::WebDriver::Elemenet`
557
542
  - `include ::Appium::Core::Base::SearchContext` instead of `::Selenium::WebDriver::SearchContext`
558
543
 
559
- ### Deprecations
560
-
561
544
  ## [1.8.0] - 2018-07-07
562
545
  ### Enhancements
563
546
  - Add Tizen case
564
547
  - [Internal] reduce method definition by `add_endpoint_method`
565
548
 
566
- ### Bug fixes
567
-
568
- ### Deprecations
569
-
570
549
  ## [1.7.2] - 2018-06-23
571
550
  ### Enhancements
572
551
  - Add `find_element_by_image` and `find_elements_by_image` to handle `ImageElement`
@@ -575,10 +554,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
575
554
  - Experimental feature
576
555
  - [Internal] Define screenshot methods in appium_lib_core instead of Selenium's one
577
556
 
578
- ### Bug fixes
579
-
580
- ### Deprecations
581
-
582
557
  ## [1.7.1] - 2018-06-15
583
558
  ### Enhancements
584
559
  - Add a `format` argument for `device_time` [#94](https://github.com/appium/ruby_lib_core/pull/94)
@@ -586,8 +561,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
586
561
  ### Bug fixes
587
562
  - Return empty array `[]` for find_elements
588
563
 
589
- ### Deprecations
590
-
591
564
  ## [1.7.0] - 2018-05-28
592
565
  ### Enhancements
593
566
  - Has one **Breaking Change**
@@ -600,10 +573,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
600
573
  - [Internal] Change directory and file structure
601
574
  - [Internal] Set default content-type
602
575
 
603
- ### Bug fixes
604
-
605
- ### Deprecations
606
-
607
576
  ## [1.6.0] - 2018-05-08
608
577
  ### Enhancements
609
578
  - **Breaking Change**
@@ -615,36 +584,22 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
615
584
  - add `battery_info` to get battery information
616
585
  - add `is_keyboard_shown` for iOS ( see also https://github.com/appium/appium-xcuitest-driver/pull/664/files )
617
586
 
618
- ### Bug fixes
619
-
620
- ### Deprecations
621
-
622
587
  ## [1.5.1] - 2018-04-25
623
- ### Enhancements
624
-
625
588
  ### Bug fixes
626
589
  - Revert timeout logic in `1.4.1`
627
590
 
628
- ### Deprecations
629
-
630
591
  ## [1.5.0] - 2018-04-25
631
592
  ### Enhancements
632
593
  - [internal] Remove hot fix for XCUITest action
633
594
 
634
- ### Bug fixes
635
-
636
595
  ### Deprecations
637
596
  - Changed the name of arguments
638
597
  - `swipe(start_x:, start_y:, end_x:, end_y:)` instead of `swipe(start_x:, start_y:, offset_x:, offset_y:)`
639
598
 
640
599
  ## [1.4.2] - 2018-04-22
641
- ### Enhancements
642
-
643
600
  ### Bug fixes
644
601
  - Revert `delegate_from_appium_driver` for `ruby_lib` compatibility
645
602
 
646
- ### Deprecations
647
-
648
603
  ## [1.4.1] - 2018-04-22
649
604
  ### Enhancements
650
605
  - add base image comparison
@@ -653,54 +608,30 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
653
608
  - Raise `::Appium::Core::Wait::TimeoutError` instead of `::Selenium::WebDriver::Error::TimeOutError`
654
609
  - [internal] Separate mjsonwp commands module and w3c commands module from one command module
655
610
 
656
- ### Bug fixes
657
-
658
- ### Deprecations
659
-
660
611
  ## [1.4.0] - 2018-04-15
661
612
  ### Enhancements
662
613
  - Add a support for WebSocket client based on Faye::WebSocket::Client [#74](https://github.com/appium/ruby_lib_core/pull/74)
663
614
 
664
- ### Bug fixes
665
-
666
- ### Deprecations
667
-
668
615
  ## [1.3.8] - 2018-04-12
669
616
  ### Enhancements
670
617
  - Make no-argument commands friendly for IDE
671
618
 
672
- ### Bug fixes
673
-
674
- ### Deprecations
675
-
676
619
  ## [1.3.7] - 2018-04-02
677
620
  ### Enhancements
678
621
  - Only for `ruby_lib_core` internal process
679
622
  - Remove `touch` action by default and following `selenium-webdriver` in W3C action.
680
623
  - Since XCUITest and UA2 drivers force handling the pointer as `touch`.
681
624
 
682
- ### Bug fixes
683
-
684
- ### Deprecations
685
-
686
625
  ## [1.3.6] - 2018-04-01
687
626
  ### Enhancements
688
627
  - Be able to change `kind` in W3C touch action.
689
628
  - Read: https://github.com/appium/ruby_lib_core/blob/master/lib/appium_lib_core/common/base/bridge/w3c.rb#L29
690
629
 
691
- ### Bug fixes
692
-
693
- ### Deprecations
694
-
695
630
  ## [1.3.5] - 2018-03-30
696
631
  ### Enhancements
697
632
  - Add a `bug_report` option in `start_recording_screen`, Android
698
633
  - Add clipboard apis [#69](https://github.com/appium/ruby_lib_core/pull/69)
699
634
 
700
- ### Bug fixes
701
-
702
- ### Deprecations
703
-
704
635
  ## [1.3.4] - 2018-03-21
705
636
  ### Enhancements
706
637
  - Add `save_viewport_screenshot` which get screenshot except for status bar.
@@ -710,16 +641,10 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
710
641
  ### Bug fixes
711
642
  - Fix _create_session attempt to throw non-existent error type Appium::Core::Error::WebDriverError_ [#66](https://github.com/appium/ruby_lib_core/issues/66)
712
643
 
713
- ### Deprecations
714
-
715
644
  ## [1.3.3] - 2018-03-03
716
645
  ### Enhancements
717
646
  - add `session_capabilities`: https://appium.io/docs/en/commands/session/get/
718
647
 
719
- ### Bug fixes
720
-
721
- ### Deprecations
722
-
723
648
  ## [1.3.2] - 2018-02-18
724
649
  ### Enhancements
725
650
  - Add Android emulator commands
@@ -727,10 +652,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
727
652
  - Add toggles
728
653
  - `toggle_location_services`, `toggle_wifi`, `toggle_data`
729
654
 
730
- ### Bug fixes
731
-
732
- ### Deprecations
733
-
734
655
  ## [1.3.1] - 2018-02-14
735
656
  ### Enhancements
736
657
  - add some app management commands [#58](https://github.com/appium/ruby_lib_core/pull/58)
@@ -752,10 +673,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
752
673
  .perform
753
674
  ```
754
675
 
755
- ### Bug fixes
756
-
757
- ### Deprecations
758
-
759
676
  ## [1.3.0] - 2018-01-28
760
677
  ### Enhancements
761
678
  - `start_recording_screen`/`stop_recording_screen` support iOS from `Appium 1.8.0` [#48](https://github.com/appium/ruby_lib_core/issues/48)
@@ -763,10 +680,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
763
680
  - `start_recording_screen`
764
681
  - The argument, `file_path`, was removed.
765
682
 
766
- ### Bug fixes
767
-
768
- ### Deprecations
769
-
770
683
  ## [1.2.7] - 2018-01-25
771
684
  ### Enhancements
772
685
  - Print warning messages to use camelCase if capability key names are snake_case
@@ -775,8 +688,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
775
688
  ### Bug fixes
776
689
  - Make `@driver.automation_name` downcase [#50](https://github.com/appium/ruby_lib_core/issues/50)
777
690
 
778
- ### Deprecations
779
-
780
691
  ## [1.2.6] - 2018-01-21
781
692
  ### Enhancements
782
693
  - Add `window_rect`
@@ -784,17 +695,11 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
784
695
  ### Bug fixes
785
696
  - Make `@driver.automation_name` symbol when someone define the `automationName` with the server argument. [#50](https://github.com/appium/ruby_lib_core/issues/50)
786
697
 
787
- ### Deprecations
788
-
789
698
  ## [1.2.5] - 2018-01-13
790
699
  ### Enhancements
791
700
  - Enhance W3C support
792
701
  - Timeout related methods
793
702
 
794
- ### Bug fixes
795
-
796
- ### Deprecations
797
-
798
703
  ## [1.2.4] - 2018-01-03
799
704
  ### Enhancements
800
705
  - Refactor `create_session` in `Appium::Core::Base::Bridge`
@@ -806,34 +711,18 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
806
711
  - Read `lib/appium_lib_core/common/base/w3c_bridge.rb` for more details
807
712
  - Can get logs like `driver.logs.available_types` and `driver.logs.get`
808
713
 
809
- ### Bug fixes
810
-
811
- ### Deprecations
812
-
813
714
  ## [1.2.3] - 2017-12-27
814
- ### Enhancements
815
-
816
715
  ### Bug fixes
817
716
  - Fix some w3c methods to work with Appium part 2 [#38](https://github.com/appium/ruby_lib_core/pull/38)
818
717
 
819
- ### Deprecations
820
-
821
718
  ## [1.2.2] - 2017-12-25
822
- ### Enhancements
823
-
824
719
  ### Bug fixes
825
720
  - Fix some w3c methods to work with Appium [#37](https://github.com/appium/ruby_lib_core/pull/37)
826
721
 
827
- ### Deprecations
828
-
829
722
  ## [1.2.1] - 2017-12-23
830
723
  ### Enhancements
831
724
  - override default duration to make some action fast [#36](https://github.com/appium/ruby_lib_core/pull/36)
832
725
 
833
- ### Bug fixes
834
-
835
- ### Deprecations
836
-
837
726
  ## [1.2.0] - 2017-12-23
838
727
  ### Enhancements
839
728
  - Append `appium:` prefix for capabilities automatically due to W3C format.
@@ -842,10 +731,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
842
731
  - IME related
843
732
  - Touch actions based on W3C spec
844
733
 
845
- ### Bug fixes
846
-
847
- ### Deprecations
848
-
849
734
  ## [1.1.0] - 2017-12-16
850
735
  ### Enhancements
851
736
  - Add guidelines in `.github`
@@ -854,8 +739,6 @@ This release has a breaking change for creating core. Thus, I've bumped the majo
854
739
  ### Bug fixes
855
740
  - fix creating sessions [#31](https://github.com/appium/ruby_lib_core/pull/31) for W3C creating sessions
856
741
 
857
- ### Deprecations
858
-
859
742
  ## [1.0.0] - 2017-11-12
860
743
 
861
744
  Initial release