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