Reading response hangs on Puppeteer.connect after 0.42.0
ritu1337 opened this issue · 3 comments
ritu1337 commented
Step To Reproduce / Observed behavior
Works on tag 0.42.0
but doesn't work on any newer:
Puppeteer.connect(browser_ws_endpoint: "ws://...") do |browser|
page = browser.new_page
response = page.goto("https://whatismyviewport.com/")
response.text # hangs indefinitely
page.screenshot() # also hangs
end
Above example works on the GitHub example URL i.e. page.goto("https://github.com/YusukeIwaki")
but not on some other URL's e.g. https://whatismyviewport.com/
or https://www.youtube.com/
.
Expected behavior
Doesn't hang on response.text
or page.screenshot()
when Puppeteer.connect
is used.
Environment
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
YusukeIwaki commented
I tried this and it worked.
Puppeteer.connect(browser_ws_endpoint: "wss://chrome.browserless.io?token=#{BROWSERLESS_API_KEY}") do |browser|
page = browser.new_page
response = page.goto('https://github.com/YusukeIwaki')
puts response.text
page.screenshot(path: 'YusukeIwaki.png')
end
However, after changing the URL of goto
as you described, it doesn't work.
response = page.goto("https://whatismyviewport.com/")
It seems the site whatismyviewport.com
uses Service Worker.
D, [2023-03-08T15:31:12.901181 #4442] DEBUG -- : RECV << {"method"=>"Target.attachedToTarget", "params"=>{"sessionId"=>"E58F599C356A8B8A832C0A9E10B474ED", "targetInfo"=>{"targetId"=>"37AD5C601BE957377CB9018EE18C0022", "type"=>"service_worker", "title"=>"Service Worker https://whatismyviewport.com/sw.js", "url"=>"https://whatismyviewport.com/sw.js", "attached"=>true, "canAccessOpener"=>false, "browserContextId"=>"81B230D0964FC4D6E3E65382EB8FBF60"}, "waitingForDebugger"=>true}}
D, [2023-03-08T15:31:12.901634 #4442] DEBUG -- : SEND >> {"sessionId":"E58F599C356A8B8A832C0A9E10B474ED","method":"Runtime.runIfWaitingForDebugger","params":{},"id":23}
YusukeIwaki commented
@ritu1337 Thank you for your report. puppeteer-ruby 0.45.3 would fix this issue. Could you try it?
ritu1337 commented
Thank you so much @YusukeIwaki, it works now!