pythoniframeplaywrightplaywright-python

How can I select a button contained within an iFrame in Playwright (python) by index?


I am attempting to select a button within an iframe utilizing Python & Playwright... in Selenium I know you can do this by using indexes. Is this possible in playwright? I've been digging through the documentation and can't seem to figure it out. The button contained within the iframe that I am trying to select is:

"button:has-text(\"Add New User\")"

The html code for the iframe I am using looks similar to this:

<iframe src="https://www.urlthatcannotbereturnedinpagehtml.com/veryparticularparameters" width="100%" style="height: 590px;"></iframe>

Does anyone have any thoughts? I've attempted to find the URL by parsing the code for the webpage, but this portion can't be selected like that. I may just be at a loss with the documentation in Playwright, I've spent so much time in selenium that this seems like an entirely new language.


Solution

  • From what I understand, you have a page that has content within an iframe. You want to use Playwright to access elements within that frame.

    The official docs to handle frames: Official docs: https://playwright.dev/python/docs/frames

    You could then try something like this:

    // Locate element inside frame
    const iframeButton = await page.frameLocator('iFrame').locator("button:has-text(\"Add New User\")");
    await iframeButton.click();
    

    Notice that the example has the iFrame tag as locator, but you could and should use something more accurate like and id, name or url.