File tree 4 files changed +40
-0
lines changed
lib/appium_lib_core/common
4 files changed +40
-0
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,8 @@ All notable changes to this project will be documented in this file.
3
3
4
4
## [ Unreleased]
5
5
### Enhancements
6
+ - Add ` save_viewport_screenshot ` which get screenshot except for status bar.
7
+ - https://github.com/search?q=org%3Aappium+viewportScreenshot&type=Code
6
8
7
9
### Bug fixes
8
10
Original file line number Diff line number Diff line change @@ -369,6 +369,14 @@ module Device
369
369
# @driver.pull_folder '/data/local/tmp' #=> Get the folder at that path
370
370
#
371
371
372
+ # @!method save_viewport_screenshot
373
+ # Save screenshot except for status bar while `@driver.save_screenshot` save entire screen.
374
+ #
375
+ # @example
376
+ #
377
+ # @driver.save_viewport_screenshot 'path/to/save.png' #=> Get the File instance of viewport_screenshot
378
+ #
379
+
372
380
# @!method update_settings(settings)
373
381
# Update Appium Settings for current test session
374
382
# @param [Hash] settings Settings to update, keys are settings, values to value to set each setting to
@@ -630,6 +638,18 @@ def update_settings(settings)
630
638
end
631
639
end
632
640
641
+ add_endpoint_method ( :save_viewport_screenshot ) do
642
+ def save_viewport_screenshot ( png_path )
643
+ extension = File . extname ( png_path ) . downcase
644
+ if extension != '.png'
645
+ WebDriver . logger . warn 'name used for saved screenshot does not match file type. ' \
646
+ 'It should end with .png extension'
647
+ end
648
+ viewport_screenshot_encode64 = execute_script ( 'mobile: viewportScreenshot' )
649
+ File . open ( png_path , 'wb' ) { |f | f << viewport_screenshot_encode64 . unpack ( 'm' ) [ 0 ] }
650
+ end
651
+ end
652
+
633
653
add_keyevent
634
654
add_touch_actions
635
655
add_ime_actions
Original file line number Diff line number Diff line change @@ -328,6 +328,15 @@ def test_take_element_screenshot
328
328
File . delete 'take_element_screenshot.png'
329
329
end
330
330
331
+ def test_viewport_screenshot
332
+ file = @@driver . save_viewport_screenshot './ios_viewport_screenshot_test.png'
333
+
334
+ assert File . exist? ( file . path )
335
+
336
+ File . delete file . path
337
+ assert !File . exist? ( file . path )
338
+ end
339
+
331
340
private
332
341
333
342
def scroll_to ( text )
Original file line number Diff line number Diff line change @@ -228,6 +228,15 @@ def test_within_context
228
228
229
229
assert_equal 'Buttons' , result . name
230
230
end
231
+
232
+ def test_viewport_screenshot
233
+ file = @@driver . save_viewport_screenshot './ios_viewport_screenshot_test.png'
234
+
235
+ assert File . exist? ( file . path )
236
+
237
+ File . delete file . path
238
+ assert !File . exist? ( file . path )
239
+ end
231
240
end
232
241
end
233
242
end
You can’t perform that action at this time.
0 commit comments