Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TestNavigateWhileLoading is flaky #1080

Closed
ZekeLu opened this issue Jun 7, 2022 · 4 comments · Fixed by #1081
Closed

TestNavigateWhileLoading is flaky #1080

ZekeLu opened this issue Jun 7, 2022 · 4 comments · Fixed by #1081

Comments

@ZekeLu
Copy link
Member

ZekeLu commented Jun 7, 2022

What versions are you running?

$ go list -m github.com/chromedp/chromedp
github.com/chromedp/chromedp@v0.8.2
$ google-chrome --version
Google Chrome 102.0.5005.61
$ go version
go version go1.18.2 linux/amd64

What did you do? Include clear steps.

Run go test -count 10 ./...

What did you expect to see?

All tests pass.

What did you see instead?

The test TestNavigateWhileLoading is flaky. It failed on my computer once. And it failed in github actions too: https://github.com/ZekeLu/chromedp/runs/6768239958?check_suite_focus=true

@ZekeLu
Copy link
Member Author

ZekeLu commented Jun 8, 2022

It's easy to reproduce the issue with:

CHROMEDP_DEBUG=1 go test -count 30 -run ^TestNav -v ./... &> logs

CHROMEDP_DEBUG=1 tells chromedp to print CDP messages from the running tests (note: it's not respected by all the tests as of now).

It prints CDP messages for tests besides TestNavigateWhileLoading. So we have to filter out noises from the logs first. Tips on handling the logs is attached to the end of this comment.

I will list several processed messages below, with interesting messages highlighted and commented. Messages prefixed with - and in color red are for the first navigation (the loading part of this test), while those prefixed with + and in color green are for the second navigation (the navigation part of this test).

CDP messages for a FAIL test:
-# navigate to http://127.0.0.1:40815
-2022/06/07 19:34:54 -> {"id":127,"sessionId":"59C5351DC0E8F642630930AB1ADFC66A","method":"Page.navigate","params":{"url":"http://127.0.0.1:40815"}}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","loaderId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","documentURL":"http://127.0.0.1:40815/","request":{"url":"http://127.0.0.1:40815/","method":"GET","headers":{"Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"mixedContentType":"none","initialPriority":"VeryHigh","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.572569,"wallTime":1654601694.719035,"initiator":{"type":"other"},"redirectHasExtraInfo":false,"type":"Document","frameId":"2AABE88A95D68C5EB45AD7B8A0564608","hasUserGesture":false},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSentExtraInfo","params":{"requestId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","associatedCookies":[],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Encoding":"gzip, deflate, br","Accept-Language":"en-US","Connection":"keep-alive","Host":"127.0.0.1:40815","Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"connectTiming":{"requestTime":116680.573011}},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceived","params":{"requestId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","loaderId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","timestamp":116680.712133,"type":"Document","response":{"url":"http://127.0.0.1:40815/","status":200,"statusText":"OK","headers":{"Content-Length":"26","Content-Type":"text/html","Date":"Tue, 07 Jun 2022 11:34:54 GMT"},"mimeType":"text/html","connectionReused":false,"connectionId":23,"remoteIPAddress":"127.0.0.1","remotePort":40815,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":101,"timing":{"requestTime":116680.573011,"proxyStart":-1,"proxyEnd":-1,"dnsStart":131.049,"dnsEnd":131.062,"connectStart":131.062,"connectEnd":132.613,"sslStart":-1,"sslEnd":-1,"workerStart":-1,"workerReady":-1,"workerFetchStart":-1,"workerRespondWithSettled":-1,"sendStart":133.929,"sendEnd":134.142,"pushStart":0,"pushEnd":0,"receiveHeadersEnd":134.493},"responseTime":1.654601694853878e+12,"protocol":"http/1.1","securityState":"secure"},"hasExtraInfo":true,"frameId":"2AABE88A95D68C5EB45AD7B8A0564608"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"id":127,"result":{"frameId":"2AABE88A95D68C5EB45AD7B8A0564608","loaderId":"9EE32A36502DCCBA4FA0D2C7FAA5C388"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceivedExtraInfo","params":{"requestId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","blockedCookies":[],"headers":{"Content-Length":"26","Content-Type":"text/html","Date":"Tue, 07 Jun 2022 11:34:54 GMT"},"resourceIPAddressSpace":"Local","statusCode":200,"headersText":"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nDate: Tue, 07 Jun 2022 11:34:54 GMT\r\nContent-Length: 26\r\n\r\n"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
+# navigate to testdata/image.html
+2022/06/07 19:34:54 -> {"id":212,"sessionId":"59C5351DC0E8F642630930AB1ADFC66A","method":"Page.navigate","params":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html"}}
 2022/06/07 19:34:54 <- {"method":"Page.frameStartedLoading","params":{"frameId":"2AABE88A95D68C5EB45AD7B8A0564608"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
-# Page.lifecycleEvent with name "init" (for the first navigation)
-2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"2AABE88A95D68C5EB45AD7B8A0564608","loaderId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","name":"init","timestamp":116680.715425},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"2AABE88A95D68C5EB45AD7B8A0564608","type":"page","title":"127.0.0.1:40815","url":"http://127.0.0.1:40815/","attached":true,"canAccessOpener":false,"browserContextId":"5CE5C591A9507C92AD8BCBF77CE48A08"}},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Page.frameNavigated","params":{"frame":{"id":"2AABE88A95D68C5EB45AD7B8A0564608","loaderId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","url":"http://127.0.0.1:40815/","domainAndRegistry":"","securityOrigin":"http://127.0.0.1:40815","mimeType":"text/html","adFrameStatus":{"adFrameType":"none"},"secureContextType":"SecureLocalhost","crossOriginIsolatedContextType":"NotIsolated","gatedAPIFeatures":[]},"type":"Navigation"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.dataReceived","params":{"requestId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","timestamp":116680.717453,"dataLength":26,"encodedDataLength":0},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"2920704.2","loaderId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","documentURL":"http://127.0.0.1:40815/","request":{"url":"http://127.0.0.1:40815/img.jpg","method":"GET","headers":{"sec-ch-ua":"","Referer":"http://127.0.0.1:40815/","sec-ch-ua-mobile":"?0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36","sec-ch-ua-platform":""},"mixedContentType":"none","initialPriority":"Low","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.718909,"wallTime":1654601694.865493,"initiator":{"type":"parser","url":"http://127.0.0.1:40815/","lineNumber":0,"columnNumber":20},"redirectHasExtraInfo":false,"type":"Image","frameId":"2AABE88A95D68C5EB45AD7B8A0564608","hasUserGesture":false},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextCreated","params":{"context":{"id":2,"origin":"http://127.0.0.1:40815","name":"","uniqueId":"-8681464814913666276.6582928237626644593","auxData":{"isDefault":true,"type":"default","frameId":"2AABE88A95D68C5EB45AD7B8A0564608"}}},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 -> {"id":213,"sessionId":"59C5351DC0E8F642630930AB1ADFC66A","method":"DOM.getDocument","params":{}}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceived","params":{"requestId":"2920704.2","loaderId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","timestamp":116680.724776,"type":"Image","response":{"url":"http://127.0.0.1:40815/img.jpg","status":200,"statusText":"OK","headers":{"Date":"Tue, 07 Jun 2022 11:34:54 GMT","Content-Length":"0"},"mimeType":"text/plain","connectionReused":true,"connectionId":23,"remoteIPAddress":"127.0.0.1","remotePort":40815,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":75,"timing":{"requestTime":116680.719808,"proxyStart":-1,"proxyEnd":-1,"dnsStart":-1,"dnsEnd":-1,"connectStart":-1,"connectEnd":-1,"sslStart":-1,"sslEnd":-1,"workerStart":-1,"workerReady":-1,"workerFetchStart":-1,"workerRespondWithSettled":-1,"sendStart":0.307,"sendEnd":0.436,"pushStart":0,"pushEnd":0,"receiveHeadersEnd":0.827},"responseTime":1.654601694866999e+12,"protocol":"http/1.1","securityState":"secure"},"hasExtraInfo":true,"frameId":"2AABE88A95D68C5EB45AD7B8A0564608"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.loadingFinished","params":{"requestId":"2920704.2","timestamp":116680.72123,"encodedDataLength":75,"shouldReportCorbBlocking":false},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.loadingFinished","params":{"requestId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","timestamp":116680.708522,"encodedDataLength":127,"shouldReportCorbBlocking":false},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Page.domContentEventFired","params":{"timestamp":116680.72856},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"2AABE88A95D68C5EB45AD7B8A0564608","loaderId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","name":"DOMContentLoaded","timestamp":116680.72856},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
-# Page.loadEventFired (for the first navigation)
-# chromedp.responseAction() sees this event sequences:
-#   Page.lifecycleEvent with name "init" 
-#   Page.loadEventFired
-# so it incoccrectly infers that the navigation is finished
-2022/06/07 19:34:54 <- {"method":"Page.loadEventFired","params":{"timestamp":116680.728729},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"2AABE88A95D68C5EB45AD7B8A0564608","loaderId":"9EE32A36502DCCBA4FA0D2C7FAA5C388","name":"load","timestamp":116680.728729},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSentExtraInfo","params":{"requestId":"2920704.2","associatedCookies":[],"headers":{"Accept":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8","Accept-Encoding":"gzip, deflate, br","Accept-Language":"en-US","Connection":"keep-alive","Host":"127.0.0.1:40815","Referer":"http://127.0.0.1:40815/","Sec-Fetch-Dest":"image","Sec-Fetch-Mode":"no-cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36","sec-ch-ua":"","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":""},"connectTiming":{"requestTime":116680.719808},"clientSecurityState":{"initiatorIsSecureContext":true,"initiatorIPAddressSpace":"Local","privateNetworkRequestPolicy":"PreflightWarn"}},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceivedExtraInfo","params":{"requestId":"2920704.2","blockedCookies":[],"headers":{"Content-Length":"0","Date":"Tue, 07 Jun 2022 11:34:54 GMT"},"resourceIPAddressSpace":"Local","statusCode":200,"headersText":"HTTP/1.1 200 OK\r\nDate: Tue, 07 Jun 2022 11:34:54 GMT\r\nContent-Length: 0\r\n\r\n"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"A647B75EF0FEDE66B7754646686A078A","loaderId":"A647B75EF0FEDE66B7754646686A078A","documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","request":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","method":"GET","headers":{},"mixedContentType":"none","initialPriority":"VeryHigh","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.736917,"wallTime":1654601694.883389,"initiator":{"type":"other"},"redirectHasExtraInfo":false,"type":"Document","frameId":"2AABE88A95D68C5EB45AD7B8A0564608","hasUserGesture":false},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceived","params":{"requestId":"A647B75EF0FEDE66B7754646686A078A","loaderId":"A647B75EF0FEDE66B7754646686A078A","timestamp":116680.74006,"type":"Document","response":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","status":200,"statusText":"OK","headers":{"Content-Type":"text/html","Last-Modified":"Fri, 25 Jun 2021 05:49:30 GMT"},"mimeType":"text/html","connectionReused":false,"connectionId":0,"remoteIPAddress":"","remotePort":0,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":-1,"protocol":"file","securityState":"secure"},"hasExtraInfo":false,"frameId":"2AABE88A95D68C5EB45AD7B8A0564608"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"id":212,"result":{"frameId":"2AABE88A95D68C5EB45AD7B8A0564608","loaderId":"A647B75EF0FEDE66B7754646686A078A"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
+# send command to read title
+2022/06/07 19:34:54 -> {"id":214,"sessionId":"59C5351DC0E8F642630930AB1ADFC66A","method":"Runtime.evaluate","params":{"expression":"document.title","objectGroup":"console","includeCommandLineAPI":true,"returnByValue":true}}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Page.frameStartedLoading","params":{"frameId":"2AABE88A95D68C5EB45AD7B8A0564608"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
+# Page.lifecycleEvent with name "init" (this is the correct one for the second navigation)
+2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"2AABE88A95D68C5EB45AD7B8A0564608","loaderId":"A647B75EF0FEDE66B7754646686A078A","name":"init","timestamp":116680.760242},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"2AABE88A95D68C5EB45AD7B8A0564608","type":"page","title":"image.html","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","attached":true,"canAccessOpener":false,"browserContextId":"5CE5C591A9507C92AD8BCBF77CE48A08"}},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Page.frameNavigated","params":{"frame":{"id":"2AABE88A95D68C5EB45AD7B8A0564608","loaderId":"A647B75EF0FEDE66B7754646686A078A","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","domainAndRegistry":"","securityOrigin":"file://","mimeType":"text/html","adFrameStatus":{"adFrameType":"none"},"secureContextType":"Secure","crossOriginIsolatedContextType":"NotIsolated","gatedAPIFeatures":[]},"type":"Navigation"},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextCreated","params":{"context":{"id":1,"origin":"file://","name":"","uniqueId":"249586289856182224.8649361915989848678","auxData":{"isDefault":true,"type":"default","frameId":"2AABE88A95D68C5EB45AD7B8A0564608"}}},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.dataReceived","params":{"requestId":"A647B75EF0FEDE66B7754646686A078A","timestamp":116680.763332,"dataLength":589,"encodedDataLength":0},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"2920775.2","loaderId":"A647B75EF0FEDE66B7754646686A078A","documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","request":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/brankas.png","method":"GET","headers":{"Referer":"","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"mixedContentType":"none","initialPriority":"Low","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.763959,"wallTime":1654601694.910476,"initiator":{"type":"parser","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","lineNumber":17,"columnNumber":88},"redirectHasExtraInfo":false,"type":"Image","frameId":"2AABE88A95D68C5EB45AD7B8A0564608","hasUserGesture":false},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"2920775.3","loaderId":"A647B75EF0FEDE66B7754646686A078A","documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","request":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/github.png","method":"GET","headers":{"Referer":"","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"mixedContentType":"none","initialPriority":"Low","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.764194,"wallTime":1654601694.910674,"initiator":{"type":"parser","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","lineNumber":18,"columnNumber":80},"redirectHasExtraInfo":false,"type":"Image","frameId":"2AABE88A95D68C5EB45AD7B8A0564608","hasUserGesture":false},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 <- {"id":213,"result":{"root":{"nodeId":1,"backendNodeId":1,"nodeType":9,"nodeName":"#document","localName":"","nodeValue":"","childNodeCount":0,"children":[],"documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","baseURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","xmlVersion":"","compatibilityMode":"NoQuirksMode"}},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 -> {"id":215,"sessionId":"59C5351DC0E8F642630930AB1ADFC66A","method":"DOM.getDocument","params":{}}
+# got title ""
+2022/06/07 19:34:54 <- {"id":214,"result":{"result":{"type":"string","value":""}},"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}
 2022/06/07 19:34:54 -> {"id":216,"method":"Target.detachFromTarget","params":{"sessionId":"59C5351DC0E8F642630930AB1ADFC66A"}}
 --- FAIL: TestNavigateWhileLoading (0.47s)

From the log we see that the events from the first navigation are saw in the second navigation, and chromedp.responseAction() (which is called by chromedp.Navigate()) handles the wrong events.
The consequence is that chromedp.Navigate() returns before the page is loaded.

CDP messages for a PASS test:
-# navigate to http://127.0.0.1:37683
-2022/06/07 19:34:54 -> {"id":338,"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB","method":"Page.navigate","params":{"url":"http://127.0.0.1:37683"}}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"F3B773331CE76CC5061CC0F0260728CD","loaderId":"F3B773331CE76CC5061CC0F0260728CD","documentURL":"http://127.0.0.1:37683/","request":{"url":"http://127.0.0.1:37683/","method":"GET","headers":{"Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"mixedContentType":"none","initialPriority":"VeryHigh","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.818648,"wallTime":1654601694.965114,"initiator":{"type":"other"},"redirectHasExtraInfo":false,"type":"Document","frameId":"A2DD5376F43C82D6E35C63E87E168ED5","hasUserGesture":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceived","params":{"requestId":"F3B773331CE76CC5061CC0F0260728CD","loaderId":"F3B773331CE76CC5061CC0F0260728CD","timestamp":116680.82036,"type":"Document","response":{"url":"http://127.0.0.1:37683/","status":200,"statusText":"OK","headers":{"Content-Length":"26","Content-Type":"text/html","Date":"Tue, 07 Jun 2022 11:34:54 GMT"},"mimeType":"text/html","connectionReused":false,"connectionId":53,"remoteIPAddress":"127.0.0.1","remotePort":37683,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":101,"timing":{"requestTime":116680.818963,"proxyStart":-1,"proxyEnd":-1,"dnsStart":0.219,"dnsEnd":0.223,"connectStart":0.223,"connectEnd":0.288,"sslStart":-1,"sslEnd":-1,"workerStart":-1,"workerReady":-1,"workerFetchStart":-1,"workerRespondWithSettled":-1,"sendStart":0.365,"sendEnd":0.39,"pushStart":0,"pushEnd":0,"receiveHeadersEnd":0.505},"responseTime":1.654601694965906e+12,"protocol":"http/1.1","securityState":"secure"},"hasExtraInfo":true,"frameId":"A2DD5376F43C82D6E35C63E87E168ED5"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"id":338,"result":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"F3B773331CE76CC5061CC0F0260728CD"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
+# navigate to testdata/image.html
+2022/06/07 19:34:54 -> {"id":340,"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB","method":"Page.navigate","params":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html"}}
 2022/06/07 19:34:54 <- {"method":"Page.frameStartedLoading","params":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
-# Page.lifecycleEvent with name "init" (for the first navigation)
-2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"F3B773331CE76CC5061CC0F0260728CD","name":"init","timestamp":116680.821359},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSentExtraInfo","params":{"requestId":"F3B773331CE76CC5061CC0F0260728CD","associatedCookies":[],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Encoding":"gzip, deflate, br","Accept-Language":"en-US","Connection":"keep-alive","Host":"127.0.0.1:37683","Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"connectTiming":{"requestTime":116680.818963}},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"A2DD5376F43C82D6E35C63E87E168ED5","type":"page","title":"127.0.0.1:37683","url":"http://127.0.0.1:37683/","attached":true,"canAccessOpener":false,"browserContextId":"5CE5C591A9507C92AD8BCBF77CE48A08"}},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceivedExtraInfo","params":{"requestId":"F3B773331CE76CC5061CC0F0260728CD","blockedCookies":[],"headers":{"Content-Length":"26","Content-Type":"text/html","Date":"Tue, 07 Jun 2022 11:34:54 GMT"},"resourceIPAddressSpace":"Local","statusCode":200,"headersText":"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nDate: Tue, 07 Jun 2022 11:34:54 GMT\r\nContent-Length: 26\r\n\r\n"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.frameNavigated","params":{"frame":{"id":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"F3B773331CE76CC5061CC0F0260728CD","url":"http://127.0.0.1:37683/","domainAndRegistry":"","securityOrigin":"http://127.0.0.1:37683","mimeType":"text/html","adFrameStatus":{"adFrameType":"none"},"secureContextType":"SecureLocalhost","crossOriginIsolatedContextType":"NotIsolated","gatedAPIFeatures":[]},"type":"Navigation"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.dataReceived","params":{"requestId":"F3B773331CE76CC5061CC0F0260728CD","timestamp":116680.821977,"dataLength":26,"encodedDataLength":0},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"2920812.2","loaderId":"F3B773331CE76CC5061CC0F0260728CD","documentURL":"http://127.0.0.1:37683/","request":{"url":"http://127.0.0.1:37683/img.jpg","method":"GET","headers":{"sec-ch-ua":"","Referer":"http://127.0.0.1:37683/","sec-ch-ua-mobile":"?0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36","sec-ch-ua-platform":""},"mixedContentType":"none","initialPriority":"Low","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.822341,"wallTime":1654601694.968827,"initiator":{"type":"parser","url":"http://127.0.0.1:37683/","lineNumber":0,"columnNumber":20},"redirectHasExtraInfo":false,"type":"Image","frameId":"A2DD5376F43C82D6E35C63E87E168ED5","hasUserGesture":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextCreated","params":{"context":{"id":2,"origin":"http://127.0.0.1:37683","name":"","uniqueId":"-2875804390539432025.-8250899529784106183","auxData":{"isDefault":true,"type":"default","frameId":"A2DD5376F43C82D6E35C63E87E168ED5"}}},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 -> {"id":343,"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB","method":"DOM.getDocument","params":{}}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSentExtraInfo","params":{"requestId":"2920812.2","associatedCookies":[],"headers":{"Accept":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8","Accept-Encoding":"gzip, deflate, br","Accept-Language":"en-US","Connection":"keep-alive","Host":"127.0.0.1:37683","Referer":"http://127.0.0.1:37683/","Sec-Fetch-Dest":"image","Sec-Fetch-Mode":"no-cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36","sec-ch-ua":"","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":""},"connectTiming":{"requestTime":116680.82256},"clientSecurityState":{"initiatorIsSecureContext":true,"initiatorIPAddressSpace":"Local","privateNetworkRequestPolicy":"PreflightWarn"}},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceivedExtraInfo","params":{"requestId":"2920812.2","blockedCookies":[],"headers":{"Content-Length":"0","Date":"Tue, 07 Jun 2022 11:34:54 GMT"},"resourceIPAddressSpace":"Local","statusCode":200,"headersText":"HTTP/1.1 200 OK\r\nDate: Tue, 07 Jun 2022 11:34:54 GMT\r\nContent-Length: 0\r\n\r\n"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"632CBFFDD1BC4017B7818B0F75958CBC","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","request":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","method":"GET","headers":{},"mixedContentType":"none","initialPriority":"VeryHigh","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.826214,"wallTime":1654601694.97268,"initiator":{"type":"other"},"redirectHasExtraInfo":false,"type":"Document","frameId":"A2DD5376F43C82D6E35C63E87E168ED5","hasUserGesture":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceived","params":{"requestId":"2920812.2","loaderId":"F3B773331CE76CC5061CC0F0260728CD","timestamp":116680.823565,"type":"Image","response":{"url":"http://127.0.0.1:37683/img.jpg","status":200,"statusText":"OK","headers":{"Date":"Tue, 07 Jun 2022 11:34:54 GMT","Content-Length":"0"},"mimeType":"text/plain","connectionReused":true,"connectionId":53,"remoteIPAddress":"127.0.0.1","remotePort":37683,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":75,"timing":{"requestTime":116680.82256,"proxyStart":-1,"proxyEnd":-1,"dnsStart":-1,"dnsEnd":-1,"connectStart":-1,"connectEnd":-1,"sslStart":-1,"sslEnd":-1,"workerStart":-1,"workerReady":-1,"workerFetchStart":-1,"workerRespondWithSettled":-1,"sendStart":0.107,"sendEnd":0.135,"pushStart":0,"pushEnd":0,"receiveHeadersEnd":0.264},"responseTime":1.654601694969259e+12,"protocol":"http/1.1","securityState":"secure"},"hasExtraInfo":true,"frameId":"A2DD5376F43C82D6E35C63E87E168ED5"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.loadingFinished","params":{"requestId":"2920812.2","timestamp":116680.823018,"encodedDataLength":75,"shouldReportCorbBlocking":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.loadingFinished","params":{"requestId":"F3B773331CE76CC5061CC0F0260728CD","timestamp":116680.819721,"encodedDataLength":127,"shouldReportCorbBlocking":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.domContentEventFired","params":{"timestamp":116680.824363},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"F3B773331CE76CC5061CC0F0260728CD","name":"DOMContentLoaded","timestamp":116680.824363},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
-# Page.loadEventFired (for the first navigation)
-# chromedp.responseAction() sees this event sequences:
-#   Page.lifecycleEvent with name "init" 
-#   Page.loadEventFired
-# so it incoccrectly infers that the navigation is finished
-2022/06/07 19:34:54 <- {"method":"Page.loadEventFired","params":{"timestamp":116680.824406},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"F3B773331CE76CC5061CC0F0260728CD","name":"load","timestamp":116680.824406},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceived","params":{"requestId":"632CBFFDD1BC4017B7818B0F75958CBC","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","timestamp":116680.827715,"type":"Document","response":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","status":200,"statusText":"OK","headers":{"Content-Type":"text/html","Last-Modified":"Fri, 25 Jun 2021 05:49:30 GMT"},"mimeType":"text/html","connectionReused":false,"connectionId":0,"remoteIPAddress":"","remotePort":0,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":-1,"protocol":"file","securityState":"secure"},"hasExtraInfo":false,"frameId":"A2DD5376F43C82D6E35C63E87E168ED5"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"id":340,"result":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
+# send command to read title
+2022/06/07 19:34:54 -> {"id":347,"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB","method":"Runtime.evaluate","params":{"expression":"document.title","objectGroup":"console","includeCommandLineAPI":true,"returnByValue":true}}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.frameStartedLoading","params":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
+# Page.lifecycleEvent with name "init" (this is the correct one for the second navigation)
+2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","name":"init","timestamp":116680.836121},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"A2DD5376F43C82D6E35C63E87E168ED5","type":"page","title":"image.html","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","attached":true,"canAccessOpener":false,"browserContextId":"5CE5C591A9507C92AD8BCBF77CE48A08"}},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.frameNavigated","params":{"frame":{"id":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","domainAndRegistry":"","securityOrigin":"file://","mimeType":"text/html","adFrameStatus":{"adFrameType":"none"},"secureContextType":"Secure","crossOriginIsolatedContextType":"NotIsolated","gatedAPIFeatures":[]},"type":"Navigation"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Runtime.executionContextCreated","params":{"context":{"id":1,"origin":"file://","name":"","uniqueId":"1995538066894831967.4397210650612052633","auxData":{"isDefault":true,"type":"default","frameId":"A2DD5376F43C82D6E35C63E87E168ED5"}}},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.dataReceived","params":{"requestId":"632CBFFDD1BC4017B7818B0F75958CBC","timestamp":116680.837584,"dataLength":589,"encodedDataLength":0},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"2920911.2","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","request":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/brankas.png","method":"GET","headers":{"Referer":"","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"mixedContentType":"none","initialPriority":"Low","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.837905,"wallTime":1654601694.984394,"initiator":{"type":"parser","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","lineNumber":17,"columnNumber":88},"redirectHasExtraInfo":false,"type":"Image","frameId":"A2DD5376F43C82D6E35C63E87E168ED5","hasUserGesture":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.requestWillBeSent","params":{"requestId":"2920911.3","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","request":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/github.png","method":"GET","headers":{"Referer":"","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"mixedContentType":"none","initialPriority":"Low","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":116680.838028,"wallTime":1654601694.984499,"initiator":{"type":"parser","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","lineNumber":18,"columnNumber":80},"redirectHasExtraInfo":false,"type":"Image","frameId":"A2DD5376F43C82D6E35C63E87E168ED5","hasUserGesture":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.loadingFinished","params":{"requestId":"632CBFFDD1BC4017B7818B0F75958CBC","timestamp":116680.827211,"encodedDataLength":589,"shouldReportCorbBlocking":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.domContentEventFired","params":{"timestamp":116680.839163},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","name":"DOMContentLoaded","timestamp":116680.839163},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"CSS.styleSheetAdded","params":{"header":{"styleSheetId":"2920911.0","frameId":"A2DD5376F43C82D6E35C63E87E168ED5","sourceURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","origin":"regular","title":"","ownerNode":1,"disabled":false,"isInline":true,"isMutable":false,"isConstructed":false,"startLine":4,"startColumn":11,"length":242,"endLine":14,"endColumn":4}},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceived","params":{"requestId":"2920911.2","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","timestamp":116680.839417,"type":"Image","response":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/brankas.png","status":200,"statusText":"OK","headers":{"Last-Modified":"Tue, 02 Feb 2021 04:20:15 GMT","Content-Type":"image/png"},"mimeType":"image/png","connectionReused":false,"connectionId":0,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":-1,"protocol":"file","securityState":"secure"},"hasExtraInfo":false,"frameId":"A2DD5376F43C82D6E35C63E87E168ED5"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.dataReceived","params":{"requestId":"2920911.2","timestamp":116680.839451,"dataLength":14569,"encodedDataLength":0},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.loadingFinished","params":{"requestId":"2920911.2","timestamp":116680.839569,"encodedDataLength":14569,"shouldReportCorbBlocking":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.responseReceived","params":{"requestId":"2920911.3","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","timestamp":116680.839675,"type":"Image","response":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/github.png","status":200,"statusText":"OK","headers":{"Last-Modified":"Tue, 02 Feb 2021 04:20:15 GMT","Content-Type":"image/png"},"mimeType":"image/png","connectionReused":false,"connectionId":0,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":-1,"protocol":"file","securityState":"secure"},"hasExtraInfo":false,"frameId":"A2DD5376F43C82D6E35C63E87E168ED5"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.dataReceived","params":{"requestId":"2920911.3","timestamp":116680.839697,"dataLength":4268,"encodedDataLength":0},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Network.loadingFinished","params":{"requestId":"2920911.3","timestamp":116680.839765,"encodedDataLength":4268,"shouldReportCorbBlocking":false},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.loadEventFired","params":{"timestamp":116680.847818},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
+# Page.loadEventFired (for the second navigation)
+2022/06/07 19:34:54 <- {"method":"Page.lifecycleEvent","params":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5","loaderId":"632CBFFDD1BC4017B7818B0F75958CBC","name":"load","timestamp":116680.847818},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"method":"Page.frameStoppedLoading","params":{"frameId":"A2DD5376F43C82D6E35C63E87E168ED5"},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 <- {"id":343,"result":{"root":{"nodeId":1,"backendNodeId":2,"nodeType":9,"nodeName":"#document","localName":"","nodeValue":"","childNodeCount":2,"children":[{"nodeId":2,"parentId":1,"backendNodeId":3,"nodeType":10,"nodeName":"html","localName":"","nodeValue":"","publicId":"","systemId":""},{"nodeId":3,"parentId":1,"backendNodeId":4,"nodeType":1,"nodeName":"HTML","localName":"html","nodeValue":"","childNodeCount":2,"children":[{"nodeId":4,"parentId":3,"backendNodeId":5,"nodeType":1,"nodeName":"HEAD","localName":"head","nodeValue":"","childNodeCount":2,"attributes":[]},{"nodeId":5,"parentId":3,"backendNodeId":6,"nodeType":1,"nodeName":"BODY","localName":"body","nodeValue":"","childNodeCount":3,"attributes":["style","background-color: #41a1e1"]}],"attributes":[],"frameId":"A2DD5376F43C82D6E35C63E87E168ED5"}],"documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","baseURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","xmlVersion":"","compatibilityMode":"NoQuirksMode"}},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
+# it incoccrectly infers that the navigation is finished too.
+# but it's lucky that the page is loaded fast enough so that it gets the expected title
+2022/06/07 19:34:54 <- {"id":347,"result":{"result":{"type":"string","value":"this is title"}},"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}
 2022/06/07 19:34:54 -> {"id":377,"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB","method":"DOM.getDocument","params":{}}
 2022/06/07 19:34:54 -> {"id":378,"method":"Target.detachFromTarget","params":{"sessionId":"112D96EB9C39F1CE3B68A3778FA415CB"}}
 --- PASS: TestNavigateWhileLoading (0.08s)

Even if in the case that the test is passed, chromedp.responseAction() still handles the wrong events. It's just lucky enough that the expected title is available in time.

Below are CDP messages in good order which is the output of CHROMEDP_DEBUG=1 go test -count 1 -run ^TestNavigateWhileLoading$ -v ./... &> good-order.log.

CDP messages in good order:
-# navigate to http://127.0.0.1:41047
-2022/06/08 12:31:25 -> {"id":27,"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A","method":"Page.navigate","params":{"url":"http://127.0.0.1:41047"}}
 2022/06/08 12:31:25 <- {"method":"Network.requestWillBeSent","params":{"requestId":"85705E31F9C7BF2F15626455AC8E6C97","loaderId":"85705E31F9C7BF2F15626455AC8E6C97","documentURL":"http://127.0.0.1:41047/","request":{"url":"http://127.0.0.1:41047/","method":"GET","headers":{"Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"mixedContentType":"none","initialPriority":"VeryHigh","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":177671.834001,"wallTime":1654662685.980469,"initiator":{"type":"other"},"redirectHasExtraInfo":false,"type":"Document","frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","hasUserGesture":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.requestWillBeSentExtraInfo","params":{"requestId":"85705E31F9C7BF2F15626455AC8E6C97","associatedCookies":[],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Encoding":"gzip, deflate, br","Accept-Language":"en-US","Connection":"keep-alive","Host":"127.0.0.1:41047","Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"connectTiming":{"requestTime":177671.834436}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.responseReceivedExtraInfo","params":{"requestId":"85705E31F9C7BF2F15626455AC8E6C97","blockedCookies":[],"headers":{"Content-Length":"26","Content-Type":"text/html","Date":"Wed, 08 Jun 2022 04:31:26 GMT"},"resourceIPAddressSpace":"Local","statusCode":200,"headersText":"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nDate: Wed, 08 Jun 2022 04:31:26 GMT\r\nContent-Length: 26\r\n\r\n"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.responseReceived","params":{"requestId":"85705E31F9C7BF2F15626455AC8E6C97","loaderId":"85705E31F9C7BF2F15626455AC8E6C97","timestamp":177671.891772,"type":"Document","response":{"url":"http://127.0.0.1:41047/","status":200,"statusText":"OK","headers":{"Content-Length":"26","Content-Type":"text/html","Date":"Wed, 08 Jun 2022 04:31:26 GMT"},"mimeType":"text/html","connectionReused":false,"connectionId":11,"remoteIPAddress":"127.0.0.1","remotePort":41047,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":101,"timing":{"requestTime":177671.834436,"proxyStart":-1,"proxyEnd":-1,"dnsStart":53.674,"dnsEnd":53.69,"connectStart":53.69,"connectEnd":54.13,"sslStart":-1,"sslEnd":-1,"workerStart":-1,"workerReady":-1,"workerFetchStart":-1,"workerRespondWithSettled":-1,"sendStart":54.248,"sendEnd":54.403,"pushStart":0,"pushEnd":0,"receiveHeadersEnd":55.141},"responseTime":1.654662686035794e+12,"protocol":"http/1.1","securityState":"secure"},"hasExtraInfo":true,"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"id":27,"result":{"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","loaderId":"85705E31F9C7BF2F15626455AC8E6C97"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Page.frameStartedLoading","params":{"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
-# Page.lifecycleEvent with name "init" (for the first navigation)
-# this event is emitted before the second navigation and it won't be saw by that navation
-2022/06/08 12:31:26 <- {"method":"Page.lifecycleEvent","params":{"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","loaderId":"85705E31F9C7BF2F15626455AC8E6C97","name":"init","timestamp":177671.895491},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"88F7676F5CFF95BD56218BD3B4C7F52F","type":"page","title":"127.0.0.1:41047","url":"http://127.0.0.1:41047/","attached":true,"canAccessOpener":false,"browserContextId":"4D8AD915A62428E9790943EBF66D17DF"}}}
 2022/06/08 12:31:26 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"88F7676F5CFF95BD56218BD3B4C7F52F","type":"page","title":"127.0.0.1:41047","url":"http://127.0.0.1:41047/","attached":true,"canAccessOpener":false,"browserContextId":"4D8AD915A62428E9790943EBF66D17DF"}},"sessionId":"EDD86BF2ABEC444751EFB0B54735372D"}
 2022/06/08 12:31:26 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"88F7676F5CFF95BD56218BD3B4C7F52F","type":"page","title":"127.0.0.1:41047","url":"http://127.0.0.1:41047/","attached":true,"canAccessOpener":false,"browserContextId":"4D8AD915A62428E9790943EBF66D17DF"}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.requestWillBeSentExtraInfo","params":{"requestId":"3847658.2","associatedCookies":[],"headers":{"Accept":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8","Accept-Encoding":"gzip, deflate, br","Accept-Language":"en-US","Connection":"keep-alive","Host":"127.0.0.1:41047","Referer":"http://127.0.0.1:41047/","Sec-Fetch-Dest":"image","Sec-Fetch-Mode":"no-cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36","sec-ch-ua":"","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":""},"connectTiming":{"requestTime":177671.901072},"clientSecurityState":{"initiatorIsSecureContext":true,"initiatorIPAddressSpace":"Local","privateNetworkRequestPolicy":"PreflightWarn"}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
+# navigate to testdata/image.html
+2022/06/08 12:31:26 -> {"id":28,"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A","method":"Page.navigate","params":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html"}}
 2022/06/08 12:31:26 <- {"method":"Network.responseReceivedExtraInfo","params":{"requestId":"3847658.2","blockedCookies":[],"headers":{"Content-Length":"0","Date":"Wed, 08 Jun 2022 04:31:26 GMT"},"resourceIPAddressSpace":"Local","statusCode":200,"headersText":"HTTP/1.1 200 OK\r\nDate: Wed, 08 Jun 2022 04:31:26 GMT\r\nContent-Length: 0\r\n\r\n"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Page.frameNavigated","params":{"frame":{"id":"88F7676F5CFF95BD56218BD3B4C7F52F","loaderId":"85705E31F9C7BF2F15626455AC8E6C97","url":"http://127.0.0.1:41047/","domainAndRegistry":"","securityOrigin":"http://127.0.0.1:41047","mimeType":"text/html","adFrameStatus":{"adFrameType":"none"},"secureContextType":"SecureLocalhost","crossOriginIsolatedContextType":"NotIsolated","gatedAPIFeatures":[]},"type":"Navigation"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.dataReceived","params":{"requestId":"85705E31F9C7BF2F15626455AC8E6C97","timestamp":177671.897744,"dataLength":26,"encodedDataLength":0},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.requestWillBeSent","params":{"requestId":"3847658.2","loaderId":"85705E31F9C7BF2F15626455AC8E6C97","documentURL":"http://127.0.0.1:41047/","request":{"url":"http://127.0.0.1:41047/img.jpg","method":"GET","headers":{"sec-ch-ua":"","Referer":"http://127.0.0.1:41047/","sec-ch-ua-mobile":"?0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36","sec-ch-ua-platform":""},"mixedContentType":"none","initialPriority":"Low","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":177671.900016,"wallTime":1654662686.046589,"initiator":{"type":"parser","url":"http://127.0.0.1:41047/","lineNumber":0,"columnNumber":20},"redirectHasExtraInfo":false,"type":"Image","frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","hasUserGesture":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Runtime.executionContextCreated","params":{"context":{"id":2,"origin":"http://127.0.0.1:41047","name":"","uniqueId":"-7260310592726446953.-126266838987763312","auxData":{"isDefault":true,"type":"default","frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"}}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.requestWillBeSent","params":{"requestId":"252D9A02943A0401A36A0AE7B25B1BA6","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","request":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","method":"GET","headers":{},"mixedContentType":"none","initialPriority":"VeryHigh","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":177671.905647,"wallTime":1654662686.052122,"initiator":{"type":"other"},"redirectHasExtraInfo":false,"type":"Document","frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","hasUserGesture":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 -> {"id":29,"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A","method":"DOM.getDocument","params":{}}
 2022/06/08 12:31:26 <- {"method":"Network.responseReceived","params":{"requestId":"3847658.2","loaderId":"85705E31F9C7BF2F15626455AC8E6C97","timestamp":177671.905593,"type":"Image","response":{"url":"http://127.0.0.1:41047/img.jpg","status":200,"statusText":"OK","headers":{"Date":"Wed, 08 Jun 2022 04:31:26 GMT","Content-Length":"0"},"mimeType":"text/plain","connectionReused":true,"connectionId":11,"remoteIPAddress":"127.0.0.1","remotePort":41047,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":75,"timing":{"requestTime":177671.901072,"proxyStart":-1,"proxyEnd":-1,"dnsStart":-1,"dnsEnd":-1,"connectStart":-1,"connectEnd":-1,"sslStart":-1,"sslEnd":-1,"workerStart":-1,"workerReady":-1,"workerFetchStart":-1,"workerRespondWithSettled":-1,"sendStart":0.455,"sendEnd":0.617,"pushStart":0,"pushEnd":0,"receiveHeadersEnd":1.054},"responseTime":1.654662686048474e+12,"protocol":"http/1.1","securityState":"secure"},"hasExtraInfo":true,"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.loadingFinished","params":{"requestId":"3847658.2","timestamp":177671.902882,"encodedDataLength":75,"shouldReportCorbBlocking":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.loadingFinished","params":{"requestId":"85705E31F9C7BF2F15626455AC8E6C97","timestamp":177671.891239,"encodedDataLength":127,"shouldReportCorbBlocking":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.responseReceived","params":{"requestId":"252D9A02943A0401A36A0AE7B25B1BA6","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","timestamp":177671.909127,"type":"Document","response":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","status":200,"statusText":"OK","headers":{"Content-Type":"text/html","Last-Modified":"Fri, 25 Jun 2021 05:49:30 GMT"},"mimeType":"text/html","connectionReused":false,"connectionId":0,"remoteIPAddress":"","remotePort":0,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":-1,"protocol":"file","securityState":"secure"},"hasExtraInfo":false,"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"id":28,"result":{"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Page.frameStartedLoading","params":{"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
+# Page.lifecycleEvent with name "init" (for the second navigation)
+2022/06/08 12:31:26 <- {"method":"Page.lifecycleEvent","params":{"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","name":"init","timestamp":177671.93843},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"88F7676F5CFF95BD56218BD3B4C7F52F","type":"page","title":"image.html","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","attached":true,"canAccessOpener":false,"browserContextId":"4D8AD915A62428E9790943EBF66D17DF"}}}
 2022/06/08 12:31:26 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"88F7676F5CFF95BD56218BD3B4C7F52F","type":"page","title":"image.html","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","attached":true,"canAccessOpener":false,"browserContextId":"4D8AD915A62428E9790943EBF66D17DF"}},"sessionId":"EDD86BF2ABEC444751EFB0B54735372D"}
 2022/06/08 12:31:26 <- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"88F7676F5CFF95BD56218BD3B4C7F52F","type":"page","title":"image.html","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","attached":true,"canAccessOpener":false,"browserContextId":"4D8AD915A62428E9790943EBF66D17DF"}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Page.frameNavigated","params":{"frame":{"id":"88F7676F5CFF95BD56218BD3B4C7F52F","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","domainAndRegistry":"","securityOrigin":"file://","mimeType":"text/html","adFrameStatus":{"adFrameType":"none"},"secureContextType":"Secure","crossOriginIsolatedContextType":"NotIsolated","gatedAPIFeatures":[]},"type":"Navigation"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Runtime.executionContextCreated","params":{"context":{"id":1,"origin":"file://","name":"","uniqueId":"-5254107818559483373.2964910750997300777","auxData":{"isDefault":true,"type":"default","frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"}}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.dataReceived","params":{"requestId":"252D9A02943A0401A36A0AE7B25B1BA6","timestamp":177671.940796,"dataLength":589,"encodedDataLength":0},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.requestWillBeSent","params":{"requestId":"3847672.2","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","request":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/brankas.png","method":"GET","headers":{"Referer":"","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"mixedContentType":"none","initialPriority":"Low","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":177671.941324,"wallTime":1654662686.087821,"initiator":{"type":"parser","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","lineNumber":17,"columnNumber":88},"redirectHasExtraInfo":false,"type":"Image","frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","hasUserGesture":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.requestWillBeSent","params":{"requestId":"3847672.3","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","request":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/github.png","method":"GET","headers":{"Referer":"","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/102.0.5005.61 Safari/537.36"},"mixedContentType":"none","initialPriority":"Low","referrerPolicy":"strict-origin-when-cross-origin","isSameSite":true},"timestamp":177671.941518,"wallTime":1654662686.087995,"initiator":{"type":"parser","url":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","lineNumber":18,"columnNumber":80},"redirectHasExtraInfo":false,"type":"Image","frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","hasUserGesture":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"id":29,"result":{"root":{"nodeId":1,"backendNodeId":1,"nodeType":9,"nodeName":"#document","localName":"","nodeValue":"","childNodeCount":0,"children":[],"documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","baseURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","xmlVersion":"","compatibilityMode":"NoQuirksMode"}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 -> {"id":30,"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A","method":"DOM.getDocument","params":{}}
 2022/06/08 12:31:26 <- {"method":"Network.loadingFinished","params":{"requestId":"252D9A02943A0401A36A0AE7B25B1BA6","timestamp":177671.908194,"encodedDataLength":589,"shouldReportCorbBlocking":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"DOM.childNodeInserted","params":{"parentNodeId":1,"previousNodeId":0,"node":{"nodeId":2,"backendNodeId":2,"nodeType":10,"nodeName":"html","localName":"","nodeValue":"","publicId":"","systemId":""}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"DOM.childNodeInserted","params":{"parentNodeId":1,"previousNodeId":2,"node":{"nodeId":3,"backendNodeId":3,"nodeType":1,"nodeName":"HTML","localName":"html","nodeValue":"","childNodeCount":0,"attributes":[],"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"DOM.childNodeCountUpdated","params":{"nodeId":3,"childNodeCount":1},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"DOM.childNodeCountUpdated","params":{"nodeId":3,"childNodeCount":2},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"DOM.documentUpdated","params":{},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Page.domContentEventFired","params":{"timestamp":177671.94367},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Page.lifecycleEvent","params":{"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","name":"DOMContentLoaded","timestamp":177671.94367},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"CSS.styleSheetAdded","params":{"header":{"styleSheetId":"3847672.0","frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","sourceURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","origin":"regular","title":"","ownerNode":4,"disabled":false,"isInline":true,"isMutable":false,"isConstructed":false,"startLine":4,"startColumn":11,"length":242,"endLine":14,"endColumn":4}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.responseReceived","params":{"requestId":"3847672.2","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","timestamp":177671.94388,"type":"Image","response":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/brankas.png","status":200,"statusText":"OK","headers":{"Last-Modified":"Tue, 02 Feb 2021 04:20:15 GMT","Content-Type":"image/png"},"mimeType":"image/png","connectionReused":false,"connectionId":0,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":-1,"protocol":"file","securityState":"secure"},"hasExtraInfo":false,"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.dataReceived","params":{"requestId":"3847672.2","timestamp":177671.943932,"dataLength":14569,"encodedDataLength":0},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.loadingFinished","params":{"requestId":"3847672.2","timestamp":177671.944096,"encodedDataLength":14569,"shouldReportCorbBlocking":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.responseReceived","params":{"requestId":"3847672.3","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","timestamp":177671.944237,"type":"Image","response":{"url":"file:///home/zeke/src/chromedp/chromedp/testdata/images/github.png","status":200,"statusText":"OK","headers":{"Last-Modified":"Tue, 02 Feb 2021 04:20:15 GMT","Content-Type":"image/png"},"mimeType":"image/png","connectionReused":false,"connectionId":0,"fromDiskCache":false,"fromServiceWorker":false,"fromPrefetchCache":false,"encodedDataLength":-1,"protocol":"file","securityState":"secure"},"hasExtraInfo":false,"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.dataReceived","params":{"requestId":"3847672.3","timestamp":177671.944271,"dataLength":4268,"encodedDataLength":0},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Network.loadingFinished","params":{"requestId":"3847672.3","timestamp":177671.944367,"encodedDataLength":4268,"shouldReportCorbBlocking":false},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"id":30,"result":{"root":{"nodeId":4,"backendNodeId":1,"nodeType":9,"nodeName":"#document","localName":"","nodeValue":"","childNodeCount":2,"children":[{"nodeId":5,"parentId":4,"backendNodeId":2,"nodeType":10,"nodeName":"html","localName":"","nodeValue":"","publicId":"","systemId":""},{"nodeId":6,"parentId":4,"backendNodeId":3,"nodeType":1,"nodeName":"HTML","localName":"html","nodeValue":"","childNodeCount":2,"children":[{"nodeId":7,"parentId":6,"backendNodeId":5,"nodeType":1,"nodeName":"HEAD","localName":"head","nodeValue":"","childNodeCount":2,"attributes":[]},{"nodeId":8,"parentId":6,"backendNodeId":6,"nodeType":1,"nodeName":"BODY","localName":"body","nodeValue":"","childNodeCount":3,"attributes":["style","background-color: #41a1e1"]}],"attributes":[],"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"}],"documentURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","baseURL":"file:///home/zeke/src/chromedp/chromedp/testdata/image.html","xmlVersion":"","compatibilityMode":"NoQuirksMode"}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
+# Page.loadEventFired (for the second navigation)
+# chromedp.responseAction() sees this event sequences:
+#   Page.lifecycleEvent with name "init" 
+#   Page.loadEventFired
+# so it infers that the navigation is finished (this time it's correct)
+2022/06/08 12:31:26 <- {"method":"Page.loadEventFired","params":{"timestamp":177671.944612},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 <- {"method":"Page.lifecycleEvent","params":{"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F","loaderId":"252D9A02943A0401A36A0AE7B25B1BA6","name":"load","timestamp":177671.944612},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
+# send command to read title
+2022/06/08 12:31:26 -> {"id":31,"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A","method":"Runtime.evaluate","params":{"expression":"document.title","objectGroup":"console","includeCommandLineAPI":true,"returnByValue":true}}
 2022/06/08 12:31:26 -> {"id":32,"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A","method":"DOM.getDocument","params":{}}
 2022/06/08 12:31:26 <- {"method":"Page.frameStoppedLoading","params":{"frameId":"88F7676F5CFF95BD56218BD3B4C7F52F"},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
+# got the expected title
+2022/06/08 12:31:26 <- {"id":31,"result":{"result":{"type":"string","value":"this is title"}},"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}
 2022/06/08 12:31:26 -> {"id":33,"method":"Target.detachFromTarget","params":{"sessionId":"B4D84BFFDE4F0C15207C6682CFBB184A"}}
 --- PASS: TestNavigateWhileLoading (0.26s)

Tips on handling logs

  1. modify the test to print the session id of TestNavigateWhileLoading.
    diff --git a/nav_test.go b/nav_test.go
    index ee9fab9..04a3d66 100644
    --- a/nav_test.go
    +++ b/nav_test.go
    @@ -327,6 +327,11 @@ func TestNavigateWhileLoading(t *testing.T) {
        // for the right load event (the second).
        var title string
        if err := Run(ctx,
    +       ActionFunc(func(ctx context.Context) error {
    +           c := FromContext(ctx)
    +           fmt.Printf("#### %s: session: %s\n", t.Name(), c.Target.SessionID)
    +           return nil
    +       }),
            ActionFunc(func(ctx context.Context) error {
                _, _, _, err := page.Navigate(s.URL).Do(ctx)
                return err
  2. run the tests with CHROMEDP_DEBUG=1 go test -count 30 -run ^TestNav -v ./... &> logs.
  3. find the session ids:
    $ grep -F "session:" logs
    #### TestNavigateWhileLoading: session: 60B66EFB4A7789660B8C9BA48E682DEB
    #### TestNavigateWhileLoading: session: 2725EDC606839BE953D6B0F883CBB884
    #### TestNavigateWhileLoading: session: A1DE598FDEFE4CB354201A498E434C9B
    ...
  4. find the messages for a session:
    $ grep -F -e 60B66EFB4A7789660B8C9BA48E682DEB -e TestNavigateWhileLoading logs
    === RUN   TestNavigateWhileLoading
    === PAUSE TestNavigateWhileLoading
    === CONT  TestNavigateWhileLoading
    2022/06/08 13:51:17 <- {"method":"Target.attachedToTarget","params":{"sessionId":"60B66EFB4A7789660B8C9BA48E682DEB","targetInfo":{"targetId":"176F519D9EEFAF063BD9CC5A17D97159","type":"page","title":"","url":"about:blank","attached":true,"canAccessOpener":false,"browserContextId":"D0557C69A9E5F408FD6180B502088FC9"},"waitingForDebugger":false}}
    ...

@ZekeLu
Copy link
Member Author

ZekeLu commented Jun 8, 2022

The implementation of chromedp.responseAction() is buggy in this case. But it's hard to fix it since there is not way to tell whether the events are from the first navigate.

I will just deflake this test by removing t.Parallel() from this test.

@ZekeLu
Copy link
Member Author

ZekeLu commented Jun 8, 2022

it's still flaky with t.Parallel() is removed 😞. See https://github.com/ZekeLu/chromedp/runs/6789298000?check_suite_focus=true.

ZekeLu added a commit to ZekeLu/chromedp that referenced this issue Jun 8, 2022
This commit does not fix the implementation of responseAction()
since there is not way to tell whether the events are from the
first navigate.

It just change the test to make sure the Page.lifecycleEvent with
the name "init" is emitted before starting the second navigate.

Fixes chromedp#1080
@ZekeLu
Copy link
Member Author

ZekeLu commented Jun 8, 2022

Finally, I deflake the test by making sure the the Page.lifecycleEvent with the name init is emitted before starting the second navigate.

ZekeLu added a commit that referenced this issue Jun 8, 2022
This commit does not fix the implementation of responseAction()
since there is not way to tell whether the events are from the
first navigate.

It just change the test to make sure the Page.lifecycleEvent with
the name "init" is emitted before starting the second navigate.

Fixes #1080
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant