appium_lib_core 4.1.0 → 6.2.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 +4 -4
- data/CHANGELOG.md +207 -272
- data/README.md +41 -14
- data/Rakefile +4 -0
- data/appium_lib_core.gemspec +5 -8
- data/bin/console +0 -4
- data/lib/appium_lib_core/android/device/auth_finger_print.rb +2 -1
- data/lib/appium_lib_core/android/device.rb +4 -4
- data/lib/appium_lib_core/common/base/bridge.rb +311 -90
- data/lib/appium_lib_core/common/base/capabilities.rb +8 -9
- data/lib/appium_lib_core/common/base/device_ime.rb +49 -0
- data/lib/appium_lib_core/common/base/driver.rb +222 -187
- data/lib/appium_lib_core/common/base/driver_settings.rb +51 -0
- data/lib/appium_lib_core/common/base/has_location.rb +80 -0
- data/lib/appium_lib_core/common/base/has_network_connection.rb +56 -0
- data/lib/appium_lib_core/common/base/http_default.rb +1 -3
- data/lib/appium_lib_core/{ios/uiautomation/bridge.rb → common/base/remote_status.rb} +9 -8
- data/lib/appium_lib_core/common/base/rotable.rb +54 -0
- data/lib/appium_lib_core/common/base/screenshot.rb +6 -6
- data/lib/appium_lib_core/common/base/search_context.rb +20 -6
- data/lib/appium_lib_core/common/base.rb +1 -3
- data/lib/appium_lib_core/common/command.rb +259 -4
- data/lib/appium_lib_core/common/device/app_management.rb +8 -14
- data/lib/appium_lib_core/common/device/image_comparison.rb +12 -4
- data/lib/appium_lib_core/common/device/keyevent.rb +4 -4
- data/lib/appium_lib_core/common/{command/mjsonwp.rb → device/orientation.rb} +14 -11
- data/lib/appium_lib_core/common/device/touch_actions.rb +2 -0
- data/lib/appium_lib_core/common/device/value.rb +6 -8
- data/lib/appium_lib_core/common/error.rb +4 -5
- data/lib/appium_lib_core/common/log.rb +4 -1
- data/lib/appium_lib_core/common/touch_action/multi_touch.rb +19 -0
- data/lib/appium_lib_core/common/touch_action/touch_actions.rb +16 -2
- data/lib/appium_lib_core/common/wait.rb +38 -6
- data/lib/appium_lib_core/device.rb +1 -5
- data/lib/appium_lib_core/driver.rb +177 -102
- data/lib/appium_lib_core/{patch.rb → element.rb} +66 -9
- data/lib/appium_lib_core/{common/base/command.rb → mac2/bridge.rb} +9 -8
- data/lib/appium_lib_core/mac2/device/screen.rb +48 -0
- data/lib/appium_lib_core/mac2/device.rb +92 -0
- data/lib/appium_lib_core/{ios.rb → mac2.rb} +2 -5
- data/lib/appium_lib_core/version.rb +2 -2
- data/lib/appium_lib_core/windows/device/app_management.rb +38 -0
- data/lib/appium_lib_core/windows/device.rb +2 -0
- data/lib/appium_lib_core.rb +20 -10
- metadata +27 -83
- data/.github/ISSUE_TEMPLATE/issue-report.md +0 -29
- data/.github/contributing.md +0 -26
- data/.github/issue_template.md +0 -20
- data/.github/workflows/unittest.yml +0 -68
- data/.gitignore +0 -18
- data/.rubocop.yml +0 -58
- data/azure-pipelines.yml +0 -15
- data/ci-jobs/functional/android_setup.yml +0 -3
- data/ci-jobs/functional/ios_setup.yml +0 -7
- data/ci-jobs/functional/publish_test_result.yml +0 -18
- data/ci-jobs/functional/run_appium.yml +0 -25
- data/ci-jobs/functional/start-emulator.sh +0 -26
- data/ci-jobs/functional_test.yml +0 -298
- data/docs/mobile_command.md +0 -34
- data/lib/appium_lib_core/common/base/bridge/mjsonwp.rb +0 -81
- data/lib/appium_lib_core/common/base/bridge/w3c.rb +0 -252
- data/lib/appium_lib_core/common/command/common.rb +0 -110
- data/lib/appium_lib_core/common/command/w3c.rb +0 -56
- data/lib/appium_lib_core/ios/uiautomation/device.rb +0 -44
- data/lib/appium_lib_core/ios/uiautomation/patch.rb +0 -34
- data/release_notes.md +0 -816
- data/script/commands.rb +0 -200
@@ -12,14 +12,22 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
# rubocop:disable Style/ClassAndModuleChildren
|
16
15
|
module Appium
|
17
16
|
module Core
|
18
17
|
# Implement useful features for element.
|
19
18
|
# Patch for Selenium Webdriver.
|
20
|
-
class Selenium::WebDriver::Element
|
21
|
-
# To extend Appium related SearchContext into ::Selenium::WebDriver::Element
|
19
|
+
class Element < ::Selenium::WebDriver::Element
|
22
20
|
include ::Appium::Core::Base::SearchContext
|
21
|
+
include ::Appium::Core::Base::TakesScreenshot
|
22
|
+
|
23
|
+
# Retuns the element id.
|
24
|
+
#
|
25
|
+
# @return [String]
|
26
|
+
# @example
|
27
|
+
# e = @driver.find_element :accessibility_id, 'something'
|
28
|
+
# e.id
|
29
|
+
#
|
30
|
+
attr_reader :id
|
23
31
|
|
24
32
|
# Returns the value of attributes like below. Read each platform to know more details.
|
25
33
|
#
|
@@ -60,20 +68,20 @@ module Appium
|
|
60
68
|
#
|
61
69
|
# @example
|
62
70
|
#
|
63
|
-
#
|
71
|
+
# element.immediate_value 'hello'
|
64
72
|
#
|
65
73
|
def immediate_value(*value)
|
66
|
-
@bridge.set_immediate_value
|
74
|
+
@bridge.set_immediate_value @id, *value
|
67
75
|
end
|
68
76
|
|
69
77
|
# Replace the value to element directly
|
70
78
|
#
|
71
79
|
# @example
|
72
80
|
#
|
73
|
-
#
|
81
|
+
# element.replace_value 'hello'
|
74
82
|
#
|
75
83
|
def replace_value(*value)
|
76
|
-
@bridge.replace_value
|
84
|
+
@bridge.replace_value @id, *value
|
77
85
|
end
|
78
86
|
|
79
87
|
# For use with location_rel.
|
@@ -99,7 +107,56 @@ module Appium
|
|
99
107
|
w = driver.window_size
|
100
108
|
::Selenium::WebDriver::Point.new "#{center_x} / #{w.width.to_f}", "#{center_y} / #{w.height.to_f}"
|
101
109
|
end
|
102
|
-
|
110
|
+
|
111
|
+
# Return an element screenshot as base64
|
112
|
+
#
|
113
|
+
# @return String Base 64 encoded string
|
114
|
+
#
|
115
|
+
# @example
|
116
|
+
#
|
117
|
+
# element.screenshot #=> "iVBORw0KGgoAAAANSUhEUgAABDgAAAB+CAIAAABOPDa6AAAAAX"
|
118
|
+
#
|
119
|
+
def screenshot
|
120
|
+
bridge.element_screenshot @id
|
121
|
+
end
|
122
|
+
|
123
|
+
# Return an element screenshot in the given format
|
124
|
+
#
|
125
|
+
# @param [:base64, :png] format
|
126
|
+
# @return String screenshot
|
127
|
+
#
|
128
|
+
# @example
|
129
|
+
#
|
130
|
+
# element.screenshot_as :base64 #=> "iVBORw0KGgoAAAANSUhEUgAABDgAAAB+CAIAAABOPDa6AAAAAX"
|
131
|
+
#
|
132
|
+
def screenshot_as(format)
|
133
|
+
case format
|
134
|
+
when :base64
|
135
|
+
bridge.element_screenshot @id
|
136
|
+
when :png
|
137
|
+
bridge.element_screenshot(@id).unpack('m')[0]
|
138
|
+
else
|
139
|
+
raise Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
# Save an element screenshot to the given path
|
144
|
+
#
|
145
|
+
# @param [String] png_path A path to save the screenshot
|
146
|
+
# @return [File] Path to the element screenshot.
|
147
|
+
#
|
148
|
+
# @example
|
149
|
+
#
|
150
|
+
# element.save_screenshot("fine_name.png")
|
151
|
+
#
|
152
|
+
def save_screenshot(png_path)
|
153
|
+
extension = File.extname(png_path).downcase
|
154
|
+
if extension != '.png'
|
155
|
+
::Appium::Logger.warn 'name used for saved screenshot does not match file type. '\
|
156
|
+
'It should end with .png extension'
|
157
|
+
end
|
158
|
+
File.open(png_path, 'wb') { |f| f << screenshot_as(:png) }
|
159
|
+
end
|
160
|
+
end # class Element
|
103
161
|
end # module Core
|
104
162
|
end # module Appium
|
105
|
-
# rubocop:enable Style/ClassAndModuleChildren
|
@@ -14,11 +14,12 @@
|
|
14
14
|
|
15
15
|
module Appium
|
16
16
|
module Core
|
17
|
-
|
18
|
-
module
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
end
|
17
|
+
module Mac2
|
18
|
+
module Bridge
|
19
|
+
def self.for(target)
|
20
|
+
target.extend Appium::Core::Mac2::Device
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,48 @@
|
|
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 Mac2
|
18
|
+
module Device
|
19
|
+
module Screen
|
20
|
+
def self.add_methods
|
21
|
+
::Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
|
22
|
+
def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',
|
23
|
+
file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil,
|
24
|
+
fps: nil, preset: nil, video_filter: nil, time_limit: nil,
|
25
|
+
enable_capture_clicks: nil, enable_cursor_capture: nil, device_id: nil)
|
26
|
+
option = ::Appium::Core::Base::Device::ScreenRecord.new(
|
27
|
+
remote_path: remote_path, user: user, pass: pass, method: method,
|
28
|
+
file_field_name: file_field_name, form_fields: form_fields, headers: headers,
|
29
|
+
force_restart: force_restart
|
30
|
+
).upload_option
|
31
|
+
|
32
|
+
option[:fps] = fps unless fps.nil?
|
33
|
+
option[:preset] = preset unless preset.nil?
|
34
|
+
option[:videoFilter] = video_filter unless video_filter.nil?
|
35
|
+
option[:captureClicks] = enable_capture_clicks unless enable_capture_clicks.nil?
|
36
|
+
option[:captureCursor] = enable_cursor_capture unless enable_cursor_capture.nil?
|
37
|
+
option[:deviceId] = device_id unless device_id.nil?
|
38
|
+
option[:timeLimit] = time_limit unless time_limit.nil?
|
39
|
+
|
40
|
+
execute(:start_recording_screen, {}, { options: option })
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end # module Screen
|
45
|
+
end # module Device
|
46
|
+
end # module Mac2
|
47
|
+
end # module Core
|
48
|
+
end # module Appium
|
@@ -0,0 +1,92 @@
|
|
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
|
+
require_relative 'device/screen'
|
16
|
+
|
17
|
+
module Appium
|
18
|
+
module Core
|
19
|
+
module Mac2
|
20
|
+
module Device
|
21
|
+
extend Forwardable
|
22
|
+
|
23
|
+
# rubocop:disable Layout/LineLength
|
24
|
+
|
25
|
+
# @since Appium 1.20.0
|
26
|
+
# @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil, fps: nil, preset: nil, video_filter: nil, enable_capture_clicks: nil, enable_cursor_capture: nil, device_id: nil)
|
27
|
+
#
|
28
|
+
# Record the display of devices running iOS Simulator since Xcode 9 or real devices since iOS 11
|
29
|
+
# (ffmpeg utility is required: 'brew install ffmpeg').
|
30
|
+
# We would recommend to play the video by VLC or Mplayer if you can not play the video with other video players.
|
31
|
+
#
|
32
|
+
# @param [String] remote_path The path to the remote location, where the resulting video should be uploaded.
|
33
|
+
# The following protocols are supported: http/https, ftp.
|
34
|
+
# Null or empty string value (the default setting) means the content of resulting
|
35
|
+
# file should be encoded as Base64 and passed as the endpount response value.
|
36
|
+
# An exception will be thrown if the generated media file is too big to
|
37
|
+
# fit into the available process memory.
|
38
|
+
# This option only has an effect if there is screen recording process in progreess
|
39
|
+
# and +forceRestart+ parameter is not set to +true+.
|
40
|
+
# @param [String] user The name of the user for the remote authentication.
|
41
|
+
# @param [String] pass The password for the remote authentication.
|
42
|
+
# @param [String] method The http multipart upload method name. The 'PUT' one is used by default.
|
43
|
+
# @param [String] file_field_name The name of the form field containing the binary payload in multipart/form-data
|
44
|
+
# requests since Appium 1.18.0. Defaults to 'file'.
|
45
|
+
# @param [Array<Hash, Array<String>>] form_fields The form fields mapping in multipart/form-data requests since Appium 1.18.0.
|
46
|
+
# If any entry has the same key in this mapping, then it is going to be ignored.
|
47
|
+
# @param [Hash] headers The additional headers in multipart/form-data requests since Appium 1.18.0.
|
48
|
+
# @param [Boolean] force_restart Whether to try to catch and upload/return the currently running screen recording
|
49
|
+
# (+false+, the default setting on server) or ignore the result of it
|
50
|
+
# and start a new recording immediately (+true+).
|
51
|
+
# @param [integer] fps The count of frames per second in the resulting video.
|
52
|
+
# Increasing fps value also increases the size of the resulting video file and the CPU usage.
|
53
|
+
# The default value is 15.
|
54
|
+
# @param [String] preset A preset is a collection of options that will provide a certain encoding speed to compression ratio.
|
55
|
+
# A slower preset will provide better compression (compression is quality per filesize).
|
56
|
+
# This means that, for example, if you target a certain file size or constant bit rate, you will
|
57
|
+
# achieve better quality with a slower preset. Read https://trac.ffmpeg.org/wiki/Encode/H.264
|
58
|
+
# for more details.
|
59
|
+
# @param [Boolean] enable_cursor_capture Whether to capture the click gestures while recording the screen. Disabled by default.
|
60
|
+
# @param [Boolean] enable_capture_clicks Recording time. 180 seconds is by default.
|
61
|
+
# @param [String] video_filter The video filter spec to apply for ffmpeg.
|
62
|
+
# See https://trac.ffmpeg.org/wiki/FilteringGuide for more details on the possible values.
|
63
|
+
# Example: Set it to +scale=ifnot(gte(iw\,1024)\,iw\,1024):-2+ in order to limit the video width
|
64
|
+
# to 1024px. The height will be adjusted automatically to match the actual screen aspect ratio.
|
65
|
+
# @param [integer] device_id Screen device index to use for the recording.
|
66
|
+
# The list of available devices could be retrieved using
|
67
|
+
# +ffmpeg -f avfoundation -list_devices true -i ""+ command.
|
68
|
+
# This option is mandatory and must be always provided.
|
69
|
+
# @param [String] time_limit The maximum recording time. The default value is 600 seconds (10 minutes).
|
70
|
+
# The minimum time resolution unit is one second.
|
71
|
+
#
|
72
|
+
# @example
|
73
|
+
#
|
74
|
+
# @driver.start_recording_screen
|
75
|
+
# @driver.start_recording_screen fps: 30, enable_cursor_capture: true
|
76
|
+
#
|
77
|
+
|
78
|
+
# rubocop:enable Layout/LineLength
|
79
|
+
|
80
|
+
####
|
81
|
+
## class << self
|
82
|
+
####
|
83
|
+
|
84
|
+
class << self
|
85
|
+
def extended(_mod)
|
86
|
+
Screen.add_methods
|
87
|
+
end
|
88
|
+
end # class << self
|
89
|
+
end # module Device
|
90
|
+
end # module Mac2
|
91
|
+
end # module Core
|
92
|
+
end # module Appium
|
@@ -13,8 +13,5 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
# loaded in common/driver.rb
|
16
|
-
require_relative '
|
17
|
-
|
18
|
-
require_relative 'ios/uiautomation/patch'
|
19
|
-
require_relative 'ios/uiautomation/device'
|
20
|
-
require_relative 'ios/uiautomation/bridge'
|
16
|
+
require_relative 'mac2/device'
|
17
|
+
require_relative 'mac2/bridge'
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
module Appium
|
16
16
|
module Core
|
17
|
-
VERSION = '
|
18
|
-
DATE = '
|
17
|
+
VERSION = '6.2.0' unless defined? ::Appium::Core::VERSION
|
18
|
+
DATE = '2023-01-26' unless defined? ::Appium::Core::DATE
|
19
19
|
end
|
20
20
|
end
|
@@ -0,0 +1,38 @@
|
|
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 Windows
|
18
|
+
module Device
|
19
|
+
module AppManagement
|
20
|
+
# override
|
21
|
+
def self.add_methods
|
22
|
+
::Appium::Core::Device.add_endpoint_method(:launch_app) do
|
23
|
+
def launch_app
|
24
|
+
execute :launch_app
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
::Appium::Core::Device.add_endpoint_method(:close_app) do
|
29
|
+
def close_app
|
30
|
+
execute :close_app
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end # module AppManagement
|
35
|
+
end # module Device
|
36
|
+
end # module Windows
|
37
|
+
end # module Core
|
38
|
+
end # module Appium
|
@@ -13,6 +13,7 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
require_relative 'device/screen'
|
16
|
+
require_relative 'device/app_management'
|
16
17
|
|
17
18
|
module Appium
|
18
19
|
module Core
|
@@ -78,6 +79,7 @@ module Appium
|
|
78
79
|
class << self
|
79
80
|
def extended(_mod)
|
80
81
|
Screen.add_methods
|
82
|
+
AppManagement.add_methods
|
81
83
|
end
|
82
84
|
end # class << self
|
83
85
|
end # module Device
|
data/lib/appium_lib_core.rb
CHANGED
@@ -17,23 +17,29 @@ require 'selenium-webdriver'
|
|
17
17
|
require_relative 'appium_lib_core/version'
|
18
18
|
require_relative 'appium_lib_core/common'
|
19
19
|
require_relative 'appium_lib_core/driver'
|
20
|
-
|
21
20
|
require_relative 'appium_lib_core/device'
|
22
|
-
|
23
|
-
# Call patch after requiring other files
|
24
|
-
require_relative 'appium_lib_core/patch'
|
21
|
+
require_relative 'appium_lib_core/element'
|
25
22
|
|
26
23
|
module Appium
|
27
|
-
#
|
24
|
+
# @private
|
25
|
+
#
|
26
|
+
# convert the top level keys to symbols.
|
28
27
|
#
|
29
|
-
# based on deep_symbolize_keys & deep_transform_keys from rails
|
30
|
-
# https://github.com/rails/docrails/blob/a3b1105ada3da64acfa3843b164b14b734456a50/activesupport/lib/active_support/core_ext/hash/keys.rb#L84
|
31
28
|
# @param [Hash] hash Hash value to make symbolise
|
32
|
-
def self.symbolize_keys(hash)
|
33
|
-
|
29
|
+
def self.symbolize_keys(hash, nested: false, enable_deprecation_msg: true)
|
30
|
+
# FIXME: As https://github.com/appium/ruby_lib/issues/945, we must remove this implicit string to symbol.
|
31
|
+
# But appium_lib_core's some capability handling expect to be symbol, so we should test to remove
|
32
|
+
# the mehotds which expect the symbol first.
|
33
|
+
raise ::Appium::Core::Error::ArgumentError, 'symbolize_keys requires a hash' unless hash.is_a? Hash
|
34
34
|
|
35
35
|
hash.each_with_object({}) do |pair, acc|
|
36
36
|
key = begin
|
37
|
+
if enable_deprecation_msg && !(pair[0].is_a? Symbol)
|
38
|
+
::Appium::Logger.warn("[Deprecation] The key '#{pair[0]}' must be a symbol while currently it " \
|
39
|
+
"is #{pair[0].class.name}. Please define the key as a Symbol. " \
|
40
|
+
'Converting it to Symbol for now.')
|
41
|
+
end
|
42
|
+
|
37
43
|
pair[0].to_sym
|
38
44
|
rescue StandardError => e
|
39
45
|
::Appium::Logger.warn(e.message)
|
@@ -41,7 +47,11 @@ module Appium
|
|
41
47
|
end
|
42
48
|
|
43
49
|
value = pair[1]
|
44
|
-
acc[key] =
|
50
|
+
acc[key] = if nested
|
51
|
+
value.is_a?(Hash) ? symbolize_keys(value, nested: false, enable_deprecation_msg: false) : value
|
52
|
+
else
|
53
|
+
value
|
54
|
+
end
|
45
55
|
end
|
46
56
|
end
|
47
57
|
|
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:
|
4
|
+
version: 6.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kazuaki MATSUO
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: selenium-webdriver
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
- - "
|
19
|
+
version: '4.2'
|
20
|
+
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: '4.9'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
30
|
-
- - "
|
29
|
+
version: '4.2'
|
30
|
+
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: '4.9'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: faye-websocket
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,20 +44,6 @@ dependencies:
|
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 0.11.0
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: bundler
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '1.14'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '1.14'
|
61
47
|
- !ruby/object:Gem::Dependency
|
62
48
|
name: rake
|
63
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -120,28 +106,28 @@ dependencies:
|
|
120
106
|
requirements:
|
121
107
|
- - "~>"
|
122
108
|
- !ruby/object:Gem::Version
|
123
|
-
version: 3.
|
109
|
+
version: 3.18.1
|
124
110
|
type: :development
|
125
111
|
prerelease: false
|
126
112
|
version_requirements: !ruby/object:Gem::Requirement
|
127
113
|
requirements:
|
128
114
|
- - "~>"
|
129
115
|
- !ruby/object:Gem::Version
|
130
|
-
version: 3.
|
116
|
+
version: 3.18.1
|
131
117
|
- !ruby/object:Gem::Dependency
|
132
118
|
name: rubocop
|
133
119
|
requirement: !ruby/object:Gem::Requirement
|
134
120
|
requirements:
|
135
121
|
- - '='
|
136
122
|
- !ruby/object:Gem::Version
|
137
|
-
version: 1.
|
123
|
+
version: 1.44.0
|
138
124
|
type: :development
|
139
125
|
prerelease: false
|
140
126
|
version_requirements: !ruby/object:Gem::Requirement
|
141
127
|
requirements:
|
142
128
|
- - '='
|
143
129
|
- !ruby/object:Gem::Version
|
144
|
-
version: 1.
|
130
|
+
version: 1.44.0
|
145
131
|
- !ruby/object:Gem::Dependency
|
146
132
|
name: appium_thor
|
147
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,34 +142,6 @@ dependencies:
|
|
156
142
|
- - "~>"
|
157
143
|
- !ruby/object:Gem::Version
|
158
144
|
version: '1.0'
|
159
|
-
- !ruby/object:Gem::Dependency
|
160
|
-
name: pry
|
161
|
-
requirement: !ruby/object:Gem::Requirement
|
162
|
-
requirements:
|
163
|
-
- - ">="
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: '0'
|
166
|
-
type: :development
|
167
|
-
prerelease: false
|
168
|
-
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
requirements:
|
170
|
-
- - ">="
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: '0'
|
173
|
-
- !ruby/object:Gem::Dependency
|
174
|
-
name: pry-byebug
|
175
|
-
requirement: !ruby/object:Gem::Requirement
|
176
|
-
requirements:
|
177
|
-
- - ">="
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
version: '0'
|
180
|
-
type: :development
|
181
|
-
prerelease: false
|
182
|
-
version_requirements: !ruby/object:Gem::Requirement
|
183
|
-
requirements:
|
184
|
-
- - ">="
|
185
|
-
- !ruby/object:Gem::Version
|
186
|
-
version: '0'
|
187
145
|
- !ruby/object:Gem::Dependency
|
188
146
|
name: parallel_tests
|
189
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,12 +177,6 @@ executables: []
|
|
219
177
|
extensions: []
|
220
178
|
extra_rdoc_files: []
|
221
179
|
files:
|
222
|
-
- ".github/ISSUE_TEMPLATE/issue-report.md"
|
223
|
-
- ".github/contributing.md"
|
224
|
-
- ".github/issue_template.md"
|
225
|
-
- ".github/workflows/unittest.yml"
|
226
|
-
- ".gitignore"
|
227
|
-
- ".rubocop.yml"
|
228
180
|
- CHANGELOG.md
|
229
181
|
- Gemfile
|
230
182
|
- LICENSE.txt
|
@@ -232,16 +184,8 @@ files:
|
|
232
184
|
- Rakefile
|
233
185
|
- Thorfile
|
234
186
|
- appium_lib_core.gemspec
|
235
|
-
- azure-pipelines.yml
|
236
187
|
- bin/console
|
237
188
|
- bin/setup
|
238
|
-
- ci-jobs/functional/android_setup.yml
|
239
|
-
- ci-jobs/functional/ios_setup.yml
|
240
|
-
- ci-jobs/functional/publish_test_result.yml
|
241
|
-
- ci-jobs/functional/run_appium.yml
|
242
|
-
- ci-jobs/functional/start-emulator.sh
|
243
|
-
- ci-jobs/functional_test.yml
|
244
|
-
- docs/mobile_command.md
|
245
189
|
- lib/appium_lib_core.rb
|
246
190
|
- lib/appium_lib_core/android.rb
|
247
191
|
- lib/appium_lib_core/android/device.rb
|
@@ -261,19 +205,19 @@ files:
|
|
261
205
|
- lib/appium_lib_core/common.rb
|
262
206
|
- lib/appium_lib_core/common/base.rb
|
263
207
|
- lib/appium_lib_core/common/base/bridge.rb
|
264
|
-
- lib/appium_lib_core/common/base/bridge/mjsonwp.rb
|
265
|
-
- lib/appium_lib_core/common/base/bridge/w3c.rb
|
266
208
|
- lib/appium_lib_core/common/base/capabilities.rb
|
267
|
-
- lib/appium_lib_core/common/base/
|
209
|
+
- lib/appium_lib_core/common/base/device_ime.rb
|
268
210
|
- lib/appium_lib_core/common/base/driver.rb
|
211
|
+
- lib/appium_lib_core/common/base/driver_settings.rb
|
212
|
+
- lib/appium_lib_core/common/base/has_location.rb
|
213
|
+
- lib/appium_lib_core/common/base/has_network_connection.rb
|
269
214
|
- lib/appium_lib_core/common/base/http_default.rb
|
270
215
|
- lib/appium_lib_core/common/base/platform.rb
|
216
|
+
- lib/appium_lib_core/common/base/remote_status.rb
|
217
|
+
- lib/appium_lib_core/common/base/rotable.rb
|
271
218
|
- lib/appium_lib_core/common/base/screenshot.rb
|
272
219
|
- lib/appium_lib_core/common/base/search_context.rb
|
273
220
|
- lib/appium_lib_core/common/command.rb
|
274
|
-
- lib/appium_lib_core/common/command/common.rb
|
275
|
-
- lib/appium_lib_core/common/command/mjsonwp.rb
|
276
|
-
- lib/appium_lib_core/common/command/w3c.rb
|
277
221
|
- lib/appium_lib_core/common/device/app_management.rb
|
278
222
|
- lib/appium_lib_core/common/device/app_state.rb
|
279
223
|
- lib/appium_lib_core/common/device/battery_status.rb
|
@@ -287,6 +231,7 @@ files:
|
|
287
231
|
- lib/appium_lib_core/common/device/ime_actions.rb
|
288
232
|
- lib/appium_lib_core/common/device/keyboard.rb
|
289
233
|
- lib/appium_lib_core/common/device/keyevent.rb
|
234
|
+
- lib/appium_lib_core/common/device/orientation.rb
|
290
235
|
- lib/appium_lib_core/common/device/screen_record.rb
|
291
236
|
- lib/appium_lib_core/common/device/setting.rb
|
292
237
|
- lib/appium_lib_core/common/device/touch_actions.rb
|
@@ -301,26 +246,25 @@ files:
|
|
301
246
|
- lib/appium_lib_core/common/ws/websocket.rb
|
302
247
|
- lib/appium_lib_core/device.rb
|
303
248
|
- lib/appium_lib_core/driver.rb
|
304
|
-
- lib/appium_lib_core/
|
249
|
+
- lib/appium_lib_core/element.rb
|
305
250
|
- lib/appium_lib_core/ios/device.rb
|
306
251
|
- lib/appium_lib_core/ios/device/clipboard.rb
|
307
|
-
- lib/appium_lib_core/ios/uiautomation/bridge.rb
|
308
|
-
- lib/appium_lib_core/ios/uiautomation/device.rb
|
309
|
-
- lib/appium_lib_core/ios/uiautomation/patch.rb
|
310
252
|
- lib/appium_lib_core/ios/xcuitest/bridge.rb
|
311
253
|
- lib/appium_lib_core/ios/xcuitest/device.rb
|
312
254
|
- lib/appium_lib_core/ios/xcuitest/device/battery.rb
|
313
255
|
- lib/appium_lib_core/ios/xcuitest/device/performance.rb
|
314
256
|
- lib/appium_lib_core/ios/xcuitest/device/screen.rb
|
315
257
|
- lib/appium_lib_core/ios_xcuitest.rb
|
316
|
-
- lib/appium_lib_core/
|
258
|
+
- lib/appium_lib_core/mac2.rb
|
259
|
+
- lib/appium_lib_core/mac2/bridge.rb
|
260
|
+
- lib/appium_lib_core/mac2/device.rb
|
261
|
+
- lib/appium_lib_core/mac2/device/screen.rb
|
317
262
|
- lib/appium_lib_core/version.rb
|
318
263
|
- lib/appium_lib_core/windows.rb
|
319
264
|
- lib/appium_lib_core/windows/bridge.rb
|
320
265
|
- lib/appium_lib_core/windows/device.rb
|
266
|
+
- lib/appium_lib_core/windows/device/app_management.rb
|
321
267
|
- lib/appium_lib_core/windows/device/screen.rb
|
322
|
-
- release_notes.md
|
323
|
-
- script/commands.rb
|
324
268
|
homepage: https://github.com/appium/ruby_lib_core/
|
325
269
|
licenses:
|
326
270
|
- Apache-2.0
|
@@ -333,14 +277,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
333
277
|
requirements:
|
334
278
|
- - ">="
|
335
279
|
- !ruby/object:Gem::Version
|
336
|
-
version: '2.
|
280
|
+
version: '2.7'
|
337
281
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
338
282
|
requirements:
|
339
283
|
- - ">="
|
340
284
|
- !ruby/object:Gem::Version
|
341
285
|
version: '0'
|
342
286
|
requirements: []
|
343
|
-
rubygems_version: 3.
|
287
|
+
rubygems_version: 3.2.14
|
344
288
|
signing_key:
|
345
289
|
specification_version: 4
|
346
290
|
summary: Minimal Ruby library for Appium.
|
@@ -1,29 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: issue report
|
3
|
-
about: Create a report to help us improve
|
4
|
-
title: ''
|
5
|
-
labels: ''
|
6
|
-
assignees: ''
|
7
|
-
|
8
|
-
---
|
9
|
-
|
10
|
-
## This is a
|
11
|
-
* [ ] Bug report
|
12
|
-
* [ ] Question
|
13
|
-
* [ ] Feature Request
|
14
|
-
|
15
|
-
## Summary
|
16
|
-
|
17
|
-
## Environment
|
18
|
-
* `ruby_lib_core` version:
|
19
|
-
* Mobile platform/version/device under test:
|
20
|
-
|
21
|
-
## Actual behaviour and steps to reproduce
|
22
|
-
|
23
|
-
## Expected behaviour
|
24
|
-
|
25
|
-
## Link to Appium/Ruby logs
|
26
|
-
|
27
|
-
Create a [GIST](https://gist.github.com) which is a paste of your _full_ Appium logs, and link them here.
|
28
|
-
|
29
|
-
## Any additional comments
|