From 3e1d0cdb17377d6f04e82666a2dbdb45022a5ea7 Mon Sep 17 00:00:00 2001 From: YusukeIwaki Date: Mon, 15 Aug 2022 09:26:26 +0900 Subject: [PATCH 1/2] add test for taking a screenshot with null viewport should be possible --- lib/puppeteer/element_handle.rb | 2 +- spec/integration/launcher_spec.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/puppeteer/element_handle.rb b/lib/puppeteer/element_handle.rb index 0e2baa12..7fb5e68f 100644 --- a/lib/puppeteer/element_handle.rb +++ b/lib/puppeteer/element_handle.rb @@ -569,7 +569,7 @@ def screenshot(type: nil, capture_beyond_viewport: capture_beyond_viewport, from_surface: from_surface) ensure - if needs_viewport_reset + if needs_viewport_reset && viewport @page.viewport = viewport end end diff --git a/spec/integration/launcher_spec.rb b/spec/integration/launcher_spec.rb index b3e1a2cb..794dc9f0 100644 --- a/spec/integration/launcher_spec.rb +++ b/spec/integration/launcher_spec.rb @@ -274,6 +274,23 @@ end end + it 'should take Element screenshots when defaultViewport is null', sinatra: true do + options = default_launch_options.merge( + default_viewport: nil, + ) + + Puppeteer.launch(**options) do |browser| + page = browser.new_page + page.goto("#{server_prefix}/grid.html") + page.evaluate('() => window.scrollBy(50, 100)') + element_handle = page.query_selector('.box:nth-of-type(3)') + screenshot = element_handle.screenshot + + # FIXME: It would be better to check the height of this screenshot here. + expect(screenshot.size).to be > 1000 + end + end + it 'should set the debugging port' do options = default_launch_options.merge( debugging_port: 9999, From 2674ebd5c6211a899fbef6e446fff7a8069d1242 Mon Sep 17 00:00:00 2001 From: YusukeIwaki Date: Mon, 15 Aug 2022 09:39:41 +0900 Subject: [PATCH 2/2] decrease size because linux generates smaller png screenshot --- spec/integration/launcher_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/integration/launcher_spec.rb b/spec/integration/launcher_spec.rb index 794dc9f0..5c23a31c 100644 --- a/spec/integration/launcher_spec.rb +++ b/spec/integration/launcher_spec.rb @@ -287,7 +287,7 @@ screenshot = element_handle.screenshot # FIXME: It would be better to check the height of this screenshot here. - expect(screenshot.size).to be > 1000 + expect(screenshot.size).to be > 100 end end