appium_lib_core 4.1.0 → 6.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|