From ce37c0229ddc2d262ac5f47b3d91fff94c428b59 Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Mon, 11 Jul 2022 09:53:05 +0200 Subject: [PATCH 1/2] feat: expose the page getter on Frame Closes #8654 --- docs/api/puppeteer.frame.md | 1 + docs/api/puppeteer.frame.page.md | 19 +++++++++++++++++++ src/common/FrameManager.ts | 7 +++++++ 3 files changed, 27 insertions(+) create mode 100644 docs/api/puppeteer.frame.page.md diff --git a/docs/api/puppeteer.frame.md b/docs/api/puppeteer.frame.md index 288d934cd38af..a69bb57dbe2a2 100644 --- a/docs/api/puppeteer.frame.md +++ b/docs/api/puppeteer.frame.md @@ -80,6 +80,7 @@ console.log(text); | [isDetached()](./puppeteer.frame.isdetached.md) | | | | [isOOPFrame()](./puppeteer.frame.isoopframe.md) | | | | [name()](./puppeteer.frame.name.md) | | | +| [page()](./puppeteer.frame.page.md) | | | | [parentFrame()](./puppeteer.frame.parentframe.md) | | | | [select(selector, values)](./puppeteer.frame.select.md) | | Triggers a change and input event once all the provided options have been selected. | | [setContent(html, options)](./puppeteer.frame.setcontent.md) | | Set the content of the frame. | diff --git a/docs/api/puppeteer.frame.page.md b/docs/api/puppeteer.frame.page.md new file mode 100644 index 0000000000000..201dd209ff57f --- /dev/null +++ b/docs/api/puppeteer.frame.page.md @@ -0,0 +1,19 @@ +--- +sidebar_label: Frame.page +--- + +# Frame.page() method + +**Signature:** + +```typescript +class Frame { + page(): Page; +} +``` + +**Returns:** + +[Page](./puppeteer.page.md) + +a page associated with the frame. diff --git a/src/common/FrameManager.ts b/src/common/FrameManager.ts index 647360c0558e7..0312ac294f04c 100644 --- a/src/common/FrameManager.ts +++ b/src/common/FrameManager.ts @@ -769,6 +769,13 @@ export class Frame { ); } + /** + * @returns a page associated with the frame. + */ + page(): Page { + return this._frameManager.page(); + } + /** * @remarks * From 28b57c105c0e5465cd1cb3afe948ea890be14533 Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Mon, 11 Jul 2022 09:56:18 +0200 Subject: [PATCH 2/2] test: add a test --- test/src/frame.spec.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/src/frame.spec.ts b/test/src/frame.spec.ts index e7804d23ffab9..6bc21aa53a407 100644 --- a/test/src/frame.spec.ts +++ b/test/src/frame.spec.ts @@ -116,6 +116,15 @@ describe('Frame specs', function () { }); }); + describe('Frame.page', function () { + it('should retrieve the page from a frame', async () => { + const {page, server} = getTestState(); + await page.goto(server.EMPTY_PAGE); + const mainFrame = page.mainFrame(); + expect(mainFrame.page()).toEqual(page); + }); + }); + describe('Frame Management', function () { itFailsFirefox('should handle nested frames', async () => { const {page, server} = getTestState();