diff --git a/lib/puppeteer/lifecycle_watcher.rb b/lib/puppeteer/lifecycle_watcher.rb index a866651..ac6469b 100644 --- a/lib/puppeteer/lifecycle_watcher.rb +++ b/lib/puppeteer/lifecycle_watcher.rb @@ -93,13 +93,14 @@ def initialize(frame_manager, frame, wait_until, timeout) check_lifecycle_complete end - class AnotherRequestReceivedError < StandardError ; end - # @param [Puppeteer::HTTPRequest] request def handle_request(request) return if request.frame != @frame || !request.navigation_request? @navigation_request = request - @navigation_response_received&.reject(AnotherRequestReceivedError.new('New navigation request was received')) + # Resolve previous navigation response in case there are multiple + # navigation requests reported by the backend. This generally should not + # happen by it looks like it's possible. + @navigation_response_received&.fulfill(nil) @navigation_response_received = resolvable_future if request.response && !@navigation_response_received.resolved? @navigation_response_received.fulfill(nil)