diff --git a/src/common/FrameManager.ts b/src/common/FrameManager.ts index 640b47a1743e0..5507d9e5c7896 100644 --- a/src/common/FrameManager.ts +++ b/src/common/FrameManager.ts @@ -1231,7 +1231,7 @@ export class Frame { */ _navigated(framePayload: Protocol.Page.Frame): void { this._name = framePayload.name; - this._url = framePayload.url; + this._url = `${framePayload.url}${framePayload.urlFragment || ''}`; } /** diff --git a/test/assets/frames/one-frame-url-fragment.html b/test/assets/frames/one-frame-url-fragment.html new file mode 100644 index 0000000000000..15375b331db7f --- /dev/null +++ b/test/assets/frames/one-frame-url-fragment.html @@ -0,0 +1 @@ + diff --git a/test/frame.spec.ts b/test/frame.spec.ts index f8132e25ed57b..a02566a76a6b2 100644 --- a/test/frame.spec.ts +++ b/test/frame.spec.ts @@ -256,5 +256,15 @@ describe('Frame specs', function () { expect(frame1).not.toBe(frame2); } ); + it('should support url fragment', async () => { + const { page, server } = getTestState(); + + await page.goto(server.PREFIX + '/frames/one-frame-url-fragment.html'); + + expect(page.frames().length).toBe(2); + expect(page.frames()[1].url()).toBe( + server.PREFIX + '/frames/frame.html&test=fragment' + ); + }); }); });