appium_lib_core 5.8.0 → 6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 06c7b0bb078ece1a833874436e4611cb407cc762d73dd2fbcb27e69ace076e14
4
- data.tar.gz: ab4e2733c06ed9866368e983c4e2a28510a4125eff5614e404c3e83f1eaceae9
3
+ metadata.gz: 0dba4d2485dc08929f8c9f6a8eeeb6fc6ba00c139b1b35e75889203a02e23078
4
+ data.tar.gz: 35da3fd8409a3a10c71a6b8f5ea59709e9ff4144e8e3a59aa8ddccbbe3bffded
5
5
  SHA512:
6
- metadata.gz: fd894aaad52613559c842c0a42ff6d6bbfc9b871ea5f3bf02a302f7ae53e9b7cb6397bea363f9108ac9bbe601f1f1cacb5fa38ee4371eebaf875d2e64b756cf4
7
- data.tar.gz: '097f706be4f0403e6397bdb941f1f63ced8c6cfae8a7f68af401ffcd0fa2e75d81051b37d1f421c9d60051c85f125c6662edb8461f8fcbc7afcaa6a89ba69142'
6
+ metadata.gz: b82f7a9c8868d97eddfee6fa85f1f2be3346ce268b23bbd264c02cad05e9f183ab46b40f717b9ae9e4ddfa15015e18108ec79e748f66996f33710fbb84933557
7
+ data.tar.gz: e02175948f0ff3a6b0e37e52e537c21262d9422e2027643d76f1b46eac55cd35b03f9fec1381ee3f3a9c4179b1888008bbbc5e9435df218d12c399efa76b8943
data/CHANGELOG.md CHANGED
@@ -10,6 +10,15 @@ Read `release_notes.md` for commit level details.
10
10
 
11
11
  ### Deprecations
12
12
 
13
+ ## [6.1.0] - 2023-01-18
14
+
15
+ ### Bug fixes
16
+ - `Element#immediate_value` sends `text` as the request body
17
+
18
+ ## [6.0.0] - 2022-12-25
19
+ - Remove iOS/UiAutomation classes
20
+ - The version may work for iOS 8. XCUITest driver will be the default behavior for iOS.
21
+
13
22
  ## [5.8.0] - 2022-12-11
14
23
 
15
24
  ### Enhancements
@@ -24,7 +33,7 @@ Read `release_notes.md` for commit level details.
24
33
  ## [5.6.0] - 2022-11-08
25
34
 
26
35
  ### Enhancements
27
- - Append `selnium-webdriver` `4.6` support
36
+ - Append `selenium-webdriver` `4.6` support
28
37
 
29
38
  ## [5.5.2] - 2022-10-11
30
39
 
data/README.md CHANGED
@@ -32,6 +32,13 @@ $ bundle install
32
32
  $ bundle exec parallel_test test/unit/
33
33
  ```
34
34
 
35
+ or
36
+
37
+ ```bash
38
+ $ bundle install
39
+ $ bundle exec rake test:unit
40
+ ```
41
+
35
42
  ### Functional Tests
36
43
  Run functional tests which require the Appium server and real device, Simulator/Emulator.
37
44
 
@@ -107,8 +114,8 @@ $ IGNORE_VERSION_SKIP=true CI=true bundle exec rake test:func:android
107
114
  platformName: 'ios',
108
115
  platformVersion: '11.0',
109
116
  deviceName: 'iPhone Simulator',
110
- automationName: 'XCUITest',
111
- app: '/path/to/MyiOS.app'
117
+ # app: '/path/to/MyiOS.app', # Without 'app' capability, an appium session starts with the home screen
118
+ automationName: 'XCUITest'
112
119
  },
113
120
  appium_lib: {
114
121
  wait: 30
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'appium_lib_core/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.required_ruby_version = '>= 2.7'
7
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.7')
8
8
 
9
9
  spec.name = 'appium_lib_core'
10
10
  spec.version = Appium::Core::VERSION
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'minitest', '~> 5.0'
31
31
  spec.add_development_dependency 'minitest-reporters', '~> 1.1'
32
32
  spec.add_development_dependency 'webmock', '~> 3.18.1'
33
- spec.add_development_dependency 'rubocop', '1.39.0'
33
+ spec.add_development_dependency 'rubocop', '1.42.0'
34
34
  spec.add_development_dependency 'appium_thor', '~> 1.0'
35
35
  spec.add_development_dependency 'parallel_tests'
36
36
  spec.add_development_dependency 'simplecov'
@@ -211,11 +211,6 @@ module Appium
211
211
  ::Appium::Core::Base::Capabilities.json_create execute(:get_capabilities)
212
212
  end
213
213
 
214
- # Override for safe. Newer ruby selenium webdriver already has the same code
215
- def page_source
216
- execute :get_page_source
217
- end
218
-
219
214
  # For Appium
220
215
  # override
221
216
  def element_displayed?(element)
@@ -229,7 +224,8 @@ module Appium
229
224
  # override
230
225
  def element_attribute(element, name)
231
226
  # For W3C in Selenium Client
232
- # execute_atom :getAttribute, element, name
227
+ # execute_atom :getAttribute, element, name.
228
+ # 'dom_attribute' in the WebDriver Selenium.
233
229
  execute :get_element_attribute, id: element.id, name: name
234
230
  end
235
231
 
@@ -28,7 +28,6 @@ module Appium
28
28
  data_matcher: '-android datamatcher', # Available in Espresso
29
29
  view_matcher: '-android viewmatcher', # Available in Espresso
30
30
  # iOS
31
- uiautomation: '-ios uiautomation',
32
31
  predicate: '-ios predicate string',
33
32
  class_chain: '-ios class chain',
34
33
  # Windows with windows prefix
@@ -70,11 +70,15 @@ module Appium
70
70
  find_elements: [:post, 'session/:session_id/elements'],
71
71
  find_child_element: [:post, 'session/:session_id/element/:id/element'],
72
72
  find_child_elements: [:post, 'session/:session_id/element/:id/elements'],
73
+ find_shadow_child_element: [:post, 'session/:session_id/shadow/:id/element'],
74
+ find_shadow_child_elements: [:post, 'session/:session_id/shadow/:id/elements'],
73
75
  get_active_element: [:get, 'session/:session_id/element/active'],
74
76
  is_element_selected: [:get, 'session/:session_id/element/:id/selected'],
75
77
  get_element_attribute: [:get, 'session/:session_id/element/:id/attribute/:name'],
76
78
  get_element_property: [:get, 'session/:session_id/element/:id/property/:name'],
77
79
  get_element_css_value: [:get, 'session/:session_id/element/:id/css/:property_name'],
80
+ get_element_aria_role: [:get, 'session/:session_id/element/:id/computedrole'],
81
+ get_element_aria_label: [:get, 'session/:session_id/element/:id/computedlabel'],
78
82
  get_element_text: [:get, 'session/:session_id/element/:id/text'],
79
83
  get_element_tag_name: [:get, 'session/:session_id/element/:id/name'],
80
84
  get_element_rect: [:get, 'session/:session_id/element/:id/rect'],
@@ -41,9 +41,7 @@ module Appium
41
41
  # Keep .split(//) for backward compatibility for now
42
42
  text = keys.join
43
43
 
44
- # FIXME: further work for W3C. Over appium 1.15.0 or later
45
- # { value: text.split(//), text: text }
46
- { value: text.chars }
44
+ { text: text }
47
45
  end
48
46
  end # module Value
49
47
  end # module Device
@@ -23,7 +23,6 @@ module Appium
23
23
  end
24
24
 
25
25
  module Ios
26
- autoload :Uiautomation, 'appium_lib_core/ios'
27
26
  autoload :Xcuitest, 'appium_lib_core/ios_xcuitest'
28
27
  end
29
28
 
@@ -328,7 +327,7 @@ module Appium
328
327
  public
329
328
 
330
329
  # @private
331
- # Set up for a neww session
330
+ # Set up for a new session
332
331
  def setup_for_new_session(opts = {})
333
332
  @custom_url = opts.delete :url # to set the custom url as :url
334
333
 
@@ -443,7 +442,7 @@ module Appium
443
442
  @driver
444
443
  end
445
444
 
446
- # @privvate
445
+ # @private
447
446
  # Attach to an existing session
448
447
  def attach_to(session_id, url: nil, automation_name: nil, platform_name: nil,
449
448
  http_client_ops: { http_client: nil, open_timeout: 999_999, read_timeout: 999_999 })
@@ -509,7 +508,7 @@ module Appium
509
508
  {}
510
509
  end
511
510
 
512
- # Quits the driver
511
+ # [Deprecated] Quits the driver. This method is the same as @driver.quit
513
512
  # @return [void]
514
513
  #
515
514
  # @example
@@ -517,6 +516,7 @@ module Appium
517
516
  # @core.quit_driver
518
517
  #
519
518
  def quit_driver
519
+ ::Appium::Logger.warn('[DEPRECATION] quit_driver will be removed. Please use @driver.quit instead.')
520
520
  @driver.quit
521
521
  rescue # rubocop:disable Style/RescueStandardError
522
522
  nil
@@ -562,6 +562,11 @@ module Appium
562
562
  # @core.platform_version #=> [10,1,1]
563
563
  #
564
564
  def platform_version
565
+ ::Appium::Logger.warn(
566
+ '[DEPRECATION] platform_version method will be. ' \
567
+ 'Please check the platformVersion via @driver.capabilities["platformVersion"] instead.'
568
+ )
569
+
565
570
  p_version = @driver.capabilities['platformVersion'] || @driver.session_capabilities['platformVersion']
566
571
  p_version.split('.').map(&:to_i)
567
572
  end
@@ -599,10 +604,8 @@ module Appium
599
604
  case sym_automation_name
600
605
  when :safari
601
606
  ::Appium::Logger.debug('SafariDriver for iOS')
602
- when :xcuitest
607
+ else # XCUITest
603
608
  ::Appium::Core::Ios::Xcuitest::Bridge.for self
604
- else # default and UIAutomation
605
- ::Appium::Core::Ios::Uiautomation::Bridge.for self
606
609
  end
607
610
  when :mac
608
611
  case sym_automation_name
@@ -14,7 +14,7 @@
14
14
 
15
15
  module Appium
16
16
  module Core
17
- VERSION = '5.8.0' unless defined? ::Appium::Core::VERSION
18
- DATE = '2022-12-11' unless defined? ::Appium::Core::DATE
17
+ VERSION = '6.1.0' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2023-01-18' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_lib_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.8.0
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-11 00:00:00.000000000 Z
11
+ date: 2023-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -120,14 +120,14 @@ dependencies:
120
120
  requirements:
121
121
  - - '='
122
122
  - !ruby/object:Gem::Version
123
- version: 1.39.0
123
+ version: 1.42.0
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - '='
129
129
  - !ruby/object:Gem::Version
130
- version: 1.39.0
130
+ version: 1.42.0
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: appium_thor
133
133
  requirement: !ruby/object:Gem::Requirement
@@ -247,12 +247,8 @@ files:
247
247
  - lib/appium_lib_core/device.rb
248
248
  - lib/appium_lib_core/driver.rb
249
249
  - lib/appium_lib_core/element.rb
250
- - lib/appium_lib_core/ios.rb
251
250
  - lib/appium_lib_core/ios/device.rb
252
251
  - lib/appium_lib_core/ios/device/clipboard.rb
253
- - lib/appium_lib_core/ios/uiautomation/bridge.rb
254
- - lib/appium_lib_core/ios/uiautomation/device.rb
255
- - lib/appium_lib_core/ios/uiautomation/patch.rb
256
252
  - lib/appium_lib_core/ios/xcuitest/bridge.rb
257
253
  - lib/appium_lib_core/ios/xcuitest/device.rb
258
254
  - lib/appium_lib_core/ios/xcuitest/device/battery.rb
@@ -273,7 +269,7 @@ homepage: https://github.com/appium/ruby_lib_core/
273
269
  licenses:
274
270
  - Apache-2.0
275
271
  metadata: {}
276
- post_install_message:
272
+ post_install_message:
277
273
  rdoc_options: []
278
274
  require_paths:
279
275
  - lib
@@ -288,8 +284,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
284
  - !ruby/object:Gem::Version
289
285
  version: '0'
290
286
  requirements: []
291
- rubygems_version: 3.3.3
292
- signing_key:
287
+ rubygems_version: 3.2.14
288
+ signing_key:
293
289
  specification_version: 4
294
290
  summary: Minimal Ruby library for Appium.
295
291
  test_files: []
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- module Appium
16
- module Core
17
- module Ios
18
- module Uiautomation
19
- module Bridge
20
- def self.for(target)
21
- target.extend Appium::Core::Ios::Device
22
-
23
- Core::Ios::Uiautomation.patch_webdriver_element
24
- Core::Ios::Uiautomation::Device.add_methods
25
- end
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- module Appium
16
- module Core
17
- module Ios
18
- module Uiautomation
19
- module Device
20
- def self.add_methods
21
- # UiAutomation, Override included method in bridge
22
- ::Appium::Core::Device.add_endpoint_method(:hide_keyboard) do
23
- def hide_keyboard(close_key = nil, strategy = nil)
24
- option = {}
25
-
26
- option[:key] = close_key || 'Done' # default to Done key.
27
- option[:strategy] = strategy || :pressKey # default to pressKey
28
-
29
- execute :hide_keyboard, {}, option
30
- end
31
- end
32
-
33
- # UiAutomation, Override included method in bridge
34
- ::Appium::Core::Device.add_endpoint_method(:background_app) do
35
- def background_app(duration = 0)
36
- execute :background_app, {}, seconds: duration
37
- end
38
- end
39
- end
40
- end # module Device
41
- end # module Uiautomation
42
- end # module Ios
43
- end # module Core
44
- end # module Appium
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- module Appium
16
- module Core
17
- module Ios
18
- module Uiautomation
19
- # @private
20
- # class_eval inside a method because class Selenium::WebDriver::Element
21
- # will trigger as soon as the file is required. in contrast a method
22
- # will trigger only when invoked.
23
- def self.patch_webdriver_element
24
- ::Appium::Core::Element.class_eval do
25
- # Cross platform way of entering text into a textfield
26
- def type(text, driver)
27
- driver.execute_script %(au.getElement('#{ref}').setValue('#{text}');)
28
- end # def type
29
- end # Selenium::WebDriver::Element.class_eval
30
- end # def patch_webdriver_element
31
- end # module Uiautomation
32
- end # module Ios
33
- end # module Core
34
- end # module Appium
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- # loaded in common/driver.rb
16
- require_relative 'ios/device'
17
-
18
- require_relative 'ios/uiautomation/patch'
19
- require_relative 'ios/uiautomation/device'
20
- require_relative 'ios/uiautomation/bridge'