microsoft / playwright

Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
https://playwright.dev
Apache License 2.0
66.86k stars 3.66k forks source link

[REGRESSION]: Storage state is not loading the saved Excel Add-in #27733

Closed vasu31dev closed 1 year ago

vasu31dev commented 1 year ago

Context:

Code Snippet

Help us help you! Put down a short code snippet that illustrates your bug and that we can run and debug locally. For example: Sorry, Since I am using my company add-in, I am not able to share the code, but please let me know if you need any information that can help to debug the issue

Describe the bug My dependent project saves the storage state of the Excel login and plugin/add-in. I am logging in with Microsoft credentials with an Excel license, and loading my repo plugin into Excel using the manifest file. Then I save the storageState. In my project using the Chromium browser when I launch the browser I do not see the Excel plugin loaded (The URL is auto-logged in using the storage state configuration done in playwright.config, but it is not loading the Excel plugin). This was working till the v1.38.1 version but doesn't work with v1.39.0

Add any other details about the problem here. All my tests are testing the Excel plugin/add-in so saving the storage state and launching the Excel with the plugin loaded saves me a lot of time. The only workaround as of now is to load the Excel plugin/add-in again for each test.

yury-s commented 1 year ago

My dependent project saves the storage state of the Excel login and plugin/add-in. I am logging in with Microsoft credentials with an Excel license, and loading my repo plugin into Excel using the manifest file. Then I save the storageState.

Can you share the code that does all of that, so that we can better understand 1) how the add-in is loaded; 2) how the storage state is saved.

In my project using the Chromium browser when I launch the browser I do not see the Excel plugin loaded (The URL is auto-logged in using the storage state configuration done in playwright.config, but it is not loading the Excel plugin). This was working till the v1.38.1 version but doesn't work with v1.39.0

If the application stays logged in, it means that the storage state is persisted and successfully loaded. It might be that with the new Chromium version shipped with 1.39 something changed in how the add-ins work in Excel. The main difference between the two playwright versions are different browsers. Can you run your test with channel: 'chrome' in v1.38.1 and v1.39.0 and see if it works in both?

The only workaround as of now is to load the Excel plugin/add-in again for each test.

Can you compare storage state after loading the add-in again and see if there is any difference?

vasu31dev commented 1 year ago

@yury-s As you mentioned, I tested in Chrome Version 118.0.5993.117 and it works fine both in Playwright v1.38.1 and v1.39.0, but in Chromium it is not working in v1.39.0. So is there any workaround if I have to use Playwright v1.39.0

projects: [
    {
      name: 'setup',
      testMatch: '**/*.setup.ts',
      use: {
        ...devices['Desktop Chrome'],
        channel: 'chrome',
        viewport: { width: 1600, height: 1000 },
        launchOptions: {
          args: ['--disable-web-security'],
          slowMo: 0,
        },
      },
    },
    {
      name: 'chromium',
      dependencies: ['setup'],
      use: {
        ...devices['Desktop Chrome'],
        channel: 'chrome',
        viewport: { width: 1600, height: 1000 },
        storageState: STORAGE_STATE_ADDIN,
        launchOptions: {
          args: ['--disable-web-security'],
          slowMo: 0,
        },
      },
    },
    ],
yury-s commented 1 year ago

You can use the stable channel for now but it looks like something has changed in Chromium that you'll have to deal with in the next stable release anyway. From what you describe, playwright saves/restores storage state correctly. Perhaps something changed in the web apis and Excel now persists add-ins information differently. We need to know why the add-in is not restored to be able to tell whether is something that can be fixed on playwright end. Did comparison of storage states before/after re-adding add-ins reveal anything?

yury-s commented 1 year ago

We need more information to act on this report. Please file a new one and link to this issue when you get back to it!