appium_lib_core 1.3.3 → 1.3.4
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 +11 -0
- data/Rakefile +1 -1
- data/lib/appium_lib_core/common/base/bridge.rb +2 -2
- data/lib/appium_lib_core/common/device.rb +21 -0
- data/lib/appium_lib_core/driver.rb +2 -2
- data/lib/appium_lib_core/ios/xcuitest/device.rb +80 -0
- data/lib/appium_lib_core/version.rb +2 -2
- data/release_notes.md +11 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aaa0d993203afcfa428e6e478416365588854f88
|
4
|
+
data.tar.gz: f087a75d818f5b888d09d606d1f60660caee5ca4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59d58196a9e24a24d51636f1c744ca75317b9101971602efc8f5a5d21dcd9111d5f20a85da93e9c04c0edb514217888b532709a0445e7fb5e6d1e2313626c892
|
7
|
+
data.tar.gz: 5f3d0e30943a11ea5df3258a8b68680f9571717c89f9d595a6ea82bd4b2555057112afaf372ff81785892558c7b29373c501049b5564600b4b55bd4af1991004
|
data/CHANGELOG.md
CHANGED
@@ -8,6 +8,17 @@ All notable changes to this project will be documented in this file.
|
|
8
8
|
|
9
9
|
### Deprecations
|
10
10
|
|
11
|
+
## [1.3.4] - 2018-03-21
|
12
|
+
### Enhancements
|
13
|
+
- Add `save_viewport_screenshot` which get screenshot except for status bar.
|
14
|
+
- https://github.com/search?q=org%3Aappium+viewportScreenshot&type=Code
|
15
|
+
- [iOS] Add `start_performance_record` and `get_performance_record`
|
16
|
+
|
17
|
+
### Bug fixes
|
18
|
+
- Fix _create_session attempt to throw non-existent error type Appium::Core::Error::WebDriverError_ [#66](https://github.com/appium/ruby_lib_core/issues/66)
|
19
|
+
|
20
|
+
### Deprecations
|
21
|
+
|
11
22
|
## [1.3.3] - 2018-03-03
|
12
23
|
### Enhancements
|
13
24
|
- add `session_capabilities`: https://appium.io/docs/en/commands/session/get/
|
data/Rakefile
CHANGED
@@ -22,7 +22,7 @@ module Appium
|
|
22
22
|
|
23
23
|
if desired_capabilities.is_a?(Symbol)
|
24
24
|
unless ::Selenium::WebDriver::Remote::Capabilities.respond_to?(desired_capabilities)
|
25
|
-
raise Error::WebDriverError, "invalid desired capability: #{desired_capabilities.inspect}"
|
25
|
+
raise ::Selenium::WebDriver::Error::WebDriverError, "invalid desired capability: #{desired_capabilities.inspect}"
|
26
26
|
end
|
27
27
|
desired_capabilities = Remote::Capabilities.__send__(desired_capabilities)
|
28
28
|
end
|
@@ -105,7 +105,7 @@ module Appium
|
|
105
105
|
end
|
106
106
|
|
107
107
|
unless @session_id
|
108
|
-
raise Error::WebDriverError, 'no sessionId in returned payload'
|
108
|
+
raise ::Selenium::WebDriver::Error::WebDriverError, 'no sessionId in returned payload'
|
109
109
|
end
|
110
110
|
|
111
111
|
json_create(oss_status, value)
|
@@ -369,6 +369,15 @@ module Appium
|
|
369
369
|
# @driver.pull_folder '/data/local/tmp' #=> Get the folder at that path
|
370
370
|
#
|
371
371
|
|
372
|
+
# @since 1.3.4
|
373
|
+
# @!method save_viewport_screenshot
|
374
|
+
# Save screenshot except for status bar while `@driver.save_screenshot` save entire screen.
|
375
|
+
#
|
376
|
+
# @example
|
377
|
+
#
|
378
|
+
# @driver.save_viewport_screenshot 'path/to/save.png' #=> Get the File instance of viewport_screenshot
|
379
|
+
#
|
380
|
+
|
372
381
|
# @!method update_settings(settings)
|
373
382
|
# Update Appium Settings for current test session
|
374
383
|
# @param [Hash] settings Settings to update, keys are settings, values to value to set each setting to
|
@@ -630,6 +639,18 @@ module Appium
|
|
630
639
|
end
|
631
640
|
end
|
632
641
|
|
642
|
+
add_endpoint_method(:save_viewport_screenshot) do
|
643
|
+
def save_viewport_screenshot(png_path)
|
644
|
+
extension = File.extname(png_path).downcase
|
645
|
+
if extension != '.png'
|
646
|
+
WebDriver.logger.warn 'name used for saved screenshot does not match file type. '\
|
647
|
+
'It should end with .png extension'
|
648
|
+
end
|
649
|
+
viewport_screenshot_encode64 = execute_script('mobile: viewportScreenshot')
|
650
|
+
File.open(png_path, 'wb') { |f| f << viewport_screenshot_encode64.unpack('m')[0] }
|
651
|
+
end
|
652
|
+
end
|
653
|
+
|
633
654
|
add_keyevent
|
634
655
|
add_touch_actions
|
635
656
|
add_ime_actions
|
@@ -190,14 +190,14 @@ module Appium
|
|
190
190
|
# Ignore setting default wait if the target driver has no implementation
|
191
191
|
def set_implicit_wait_by_default(wait)
|
192
192
|
@driver.manage.timeouts.implicit_wait = wait
|
193
|
-
rescue Selenium::WebDriver::Error::UnknownError => e
|
193
|
+
rescue ::Selenium::WebDriver::Error::UnknownError => e
|
194
194
|
unless e.message.include?('The operation requested is not yet implemented')
|
195
195
|
raise e.message, ::Appium::Core::Error::ServerError
|
196
196
|
end
|
197
197
|
|
198
198
|
Appium::Logger.debug(e.message)
|
199
199
|
{}
|
200
|
-
rescue Selenium::WebDriver::Error::WebDriverError => e
|
200
|
+
rescue ::Selenium::WebDriver::Error::WebDriverError => e
|
201
201
|
# FIXME: Temporary rescue until Appium support W3C's implicit wait
|
202
202
|
# https://github.com/jlipps/simple-wd-spec#set-timeouts
|
203
203
|
unless e.message.include?('Parameters were incorrect. We wanted {"required":["type","ms"]} and you sent ["implicit"]')
|
@@ -59,6 +59,56 @@ module Appium
|
|
59
59
|
# @driver.start_recording_screen video_type: 'h264', time_limit: '260'
|
60
60
|
#
|
61
61
|
|
62
|
+
# @since 1.3.4
|
63
|
+
# @!method start_performance_record(timeout: 300000, profile_name: 'Activity Monitor')
|
64
|
+
#
|
65
|
+
# This is a blocking application.
|
66
|
+
# @param [Integer|String] timeout: The maximum count of milliseconds to record the profiling information.
|
67
|
+
# @param [String] profile_name: The name of existing performance profile to apply.
|
68
|
+
# Execute `instruments -s` to show the list of available profiles.
|
69
|
+
# Note, that not all profiles are supported on mobile devices.
|
70
|
+
# @param [Integer|String] pid: The ID of the process to measure the performance for.
|
71
|
+
# Set it to `current` in order to measure the performance of
|
72
|
+
# the process, which belongs to the currently active application.
|
73
|
+
# All processes running on the device are measured if
|
74
|
+
# pid is unset (the default setting). Setting process ID while
|
75
|
+
# device under test is Simulator might require `instruments` to be launched
|
76
|
+
# with sudo privileges, which is not supported and will throw a timeout exception.
|
77
|
+
# @return nil
|
78
|
+
#
|
79
|
+
# @example
|
80
|
+
#
|
81
|
+
# @driver.start_performance_record # default: (timeout: 300000, profile_name: 'Activity Monitor')
|
82
|
+
# @driver.start_performance_record(timeout: 300000, profile_name: 'Activity Monitor')
|
83
|
+
#
|
84
|
+
|
85
|
+
# @since 1.3.4
|
86
|
+
# @!method get_performance_record(save_file_path: './performance', profile_name: 'Activity Monitor', remote_path: nil, user: nil, pass: nil, method: 'PUT')
|
87
|
+
#
|
88
|
+
# This is a blocking application.
|
89
|
+
#
|
90
|
+
# @param [String] save_file_path: A path to save data as zipped .trace file
|
91
|
+
# @param [String] profile_name: The name of existing performance profile to apply.
|
92
|
+
# Execute `instruments -s` to show the list of available profiles.
|
93
|
+
# Note, that not all profiles are supported on mobile devices.
|
94
|
+
# @param [String] save_file_path: The name of existing performance profile to apply.
|
95
|
+
# Execute `instruments -s` to show the list of available profiles.
|
96
|
+
# Note, that not all profiles are supported on mobile devices.
|
97
|
+
# @param [String] remote_path: The path to the remote location, where the resulting zipped .trace file should be uploaded.
|
98
|
+
# The following protocols are supported: http/https, ftp.
|
99
|
+
# Null or empty string value (the default setting) means the content of resulting
|
100
|
+
# file should be zipped, encoded as Base64 and passed as the endpount response value.
|
101
|
+
# An exception will be thrown if the generated file is too big to
|
102
|
+
# fit into the available process memory.
|
103
|
+
# @param [String] user: The name of the user for the remote authentication. Only works if `remotePath` is provided.
|
104
|
+
# @param [String] pass: The password for the remote authentication. Only works if `remotePath` is provided.
|
105
|
+
# @param [String] method: The http multipart upload method name. Only works if `remotePath` is provided.
|
106
|
+
#
|
107
|
+
# @example
|
108
|
+
#
|
109
|
+
# @driver.get_performance_record
|
110
|
+
# @driver.get_performance_record(save_file_path: './performance', profile_name: 'Activity Monitor')
|
111
|
+
|
62
112
|
# rubocop:enable Metrics/LineLength
|
63
113
|
|
64
114
|
####
|
@@ -91,11 +141,41 @@ module Appium
|
|
91
141
|
end
|
92
142
|
end
|
93
143
|
|
144
|
+
add_performance
|
94
145
|
add_screen_recording
|
95
146
|
end
|
96
147
|
|
97
148
|
private
|
98
149
|
|
150
|
+
def add_performance
|
151
|
+
Appium::Core::Device.add_endpoint_method(:start_performance_record) do
|
152
|
+
def start_performance_record(timeout: 300_000, profile_name: 'Activity Monitor', pid: nil)
|
153
|
+
option = {}
|
154
|
+
option[:timeout] = timeout
|
155
|
+
option[:profileName] = profile_name
|
156
|
+
option[:pid] = pid if pid
|
157
|
+
|
158
|
+
execute_script 'mobile: startPerfRecord', option
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
Appium::Core::Device.add_endpoint_method(:get_performance_record) do
|
163
|
+
# rubocop:disable Metrics/ParameterLists
|
164
|
+
def get_performance_record(save_file_path: './performance', profile_name: 'Activity Monitor',
|
165
|
+
remote_path: nil, user: nil, pass: nil, method: 'PUT')
|
166
|
+
option = ::Appium::Core::Device::ScreenRecord.new(
|
167
|
+
remote_path: remote_path, user: user, pass: pass, method: method
|
168
|
+
).upload_option
|
169
|
+
|
170
|
+
option[:profileName] = profile_name
|
171
|
+
result = execute_script 'mobile: stopPerfRecord', option
|
172
|
+
|
173
|
+
File.open("#{save_file_path}.zip", 'wb') { |f| f << result.unpack('m')[0] }
|
174
|
+
end
|
175
|
+
# rubocop:enable Metrics/ParameterLists
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
99
179
|
def add_screen_recording
|
100
180
|
Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
|
101
181
|
# rubocop:disable Metrics/ParameterLists
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Appium
|
2
2
|
module Core
|
3
|
-
VERSION = '1.3.
|
4
|
-
DATE = '2018-03-
|
3
|
+
VERSION = '1.3.4'.freeze unless defined? ::Appium::Core::VERSION
|
4
|
+
DATE = '2018-03-21'.freeze unless defined? ::Appium::Core::DATE
|
5
5
|
end
|
6
6
|
end
|
data/release_notes.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
#### v1.3.4 2018-03-21
|
2
|
+
|
3
|
+
- [053458e](https://github.com/appium/ruby_lib_core/commit/053458e8c766c2f83c7025251e1aeebb1a2da4d5) Release 1.3.4
|
4
|
+
- [0987ba3](https://github.com/appium/ruby_lib_core/commit/0987ba361f276c9cdbbf6d400201ec49316a09f6) Fix error initialisation (#67)
|
5
|
+
- [0064cee](https://github.com/appium/ruby_lib_core/commit/0064cee5a9077858f4903e325471405aefb51fbd) append pid
|
6
|
+
- [73185aa](https://github.com/appium/ruby_lib_core/commit/73185aa548e4118f19f23f46814dc2ed52f77b53) apply https://github.com/appium/appium-xcuitest-driver/pull/638
|
7
|
+
- [2b46bcf](https://github.com/appium/ruby_lib_core/commit/2b46bcf168dc6bd4524749beaa9aa5676b65a0cb) add getting performance in core as same as Android (#65)
|
8
|
+
- [d7335ee](https://github.com/appium/ruby_lib_core/commit/d7335ee5a2c18b8d1a61b125858b825d196c72d1) rename
|
9
|
+
- [443394d](https://github.com/appium/ruby_lib_core/commit/443394dc0de09929866f70aea983c77b556b924a) add viewportScreen (#63)
|
10
|
+
|
11
|
+
|
1
12
|
#### v1.3.3 2018-03-03
|
2
13
|
|
3
14
|
- [bf9a6a3](https://github.com/appium/ruby_lib_core/commit/bf9a6a357f7c318fd3aae489552964e6dc847a8e) Release 1.3.3
|
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: 1.3.
|
4
|
+
version: 1.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kazuaki MATSUO
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: selenium-webdriver
|
@@ -205,6 +205,7 @@ files:
|
|
205
205
|
- appium_lib_core.gemspec
|
206
206
|
- bin/console
|
207
207
|
- bin/setup
|
208
|
+
- docs/mobile_command.md
|
208
209
|
- lib/appium_lib_core.rb
|
209
210
|
- lib/appium_lib_core/android.rb
|
210
211
|
- lib/appium_lib_core/android/device.rb
|