Skip to content

Can't get reference to flyout windows #14876

@fara20222

Description

@fara20222

Context:

  • Playwright Version: 1.22.0
  • Operating System: Windows
  • Node.js version: 14.17.6
  • Browser: Edge Canary
  • Extra:

We are trying to use PlayWright to test a feature that's currently only available in Edge Canary. The work flow is that user signs into twitter, types "We love plants!", then a paint brush icon will appear on the address bar. Clicking on the paint brush icon will show a "Designer in Microsoft Edge" flyout. The blocking issue we are having is that we can't get a reference to this flyout.

Please note that in Selenium, after we set options.add_experimental_option('windowTypes', ['other']), we can reference the flyout using self._driver.switch_to.window(handle). We need something similar on PlayWright.

This issue is blocking us from using PlayWright. We want to use PlayWright instead of Selenium, because we already have a lot of other tests written in PlayWright, and we are hoping to re-use these tests.

Below is the code you can run to repro this issue. You need to download edge canary as this feature is currently only available in edge canary.

import { chromium } from 'playwright';

describe('Twitter test', () => {

test('Twitter login', async () => {
    const context = await chromium.launchPersistentContext('C:\\temp-edge\\edge-dev-profile', {
        headless: false,
        channel: "msedge-canary",
        args: ['--enable-features=NetworkService,NetworkServiceInProcess,msEdgeDesignerUI,msDisableHubPopupLightDismiss'],
    });
    const page = await context.newPage();
    await page.goto('https://twitter.com/home');
    
    await page.pause(); 
    
    // Here you need to sign in to twitter
    // type 'We love plants!' in its message composing box
    // wait for the paint brush button to appear and click it to bring up the Designer In Microsoft Edge flyout
    // then resume the script

    const pages = context.pages();
    // The issue here is that pages array doesn't have the Designer in Microsoft Edge flyout

    await page.pause(); 
    console.log("Count of page is: " + pages.length);     
  });
});

This screenshot shows the paint brush icon on the address bar to trigger the flyout, the Designer In Microsoft Edge flyout and also its DOM tree.
flyout

Talked with Pavel Feldman on this. If you can get this fixed in this week's release, that will be great. Please feel free to ping me on Teams if there is any more information I can provide.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions