Skip to content

[Regression]: Locators of elements changing from/to hidden have operations hanging in 1.45.0 #31442

Closed
@bschmaltz

Description

@bschmaltz

Last Good Version

1.44.1

First Bad Version

1.45.0

Steps to reproduce

Performing async operations on hidden (display none) locator seems to hang indefinitely, while previously they would resolve

    const splashRoot = page.locator("#splash-root");
    console.log("splashRoot", splashRoot);
    const style = await splashRoot.getAttribute("style");
    console.log("style", style);

Expected behavior

Getting a hidden elements attribute should resolve. I should log the locator on the second line and log the style attribute on the fourth line.

Actual behavior

I'm only hitting the first log splashRoot locator('#splash-root')

Then, the browser will close for test timeout

locator.getAttribute: Timeout 20000ms exceeded.
Call log:
  - waiting for locator('#splash-root')

    at captureRawStack (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\utils\stackTrace.js:49:17)
    at captureLibraryStackTrace (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\utils\stackTrace.js:55:17)
    at Frame._wrapApiCall (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\client\channelOwner.js:163:65)
    at Proxy.<anonymous> (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\client\channelOwner.js:124:33)
    at Frame.getAttribute (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\client\frame.js:381:40)
    at Locator.getAttribute (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\client\locator.js:217:30)
    at callback (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\tests\shopping\shopping-helpers.ts:274:36)
    at Timeout._onTimeout (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\tests\shopping\shopping-helpers.ts:244:19)
    at listOnTimeout (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node:internal\timers:569:17)
    at processTimers (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node:internal\timers:512:7)
<inner error>
TimeoutError: Timeout 20000ms exceeded.
Call log:
  - waiting for locator('#splash-root')

    at ProgressController.run (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\server\progress.js:78:26)
    at Frame._callOnElementOnceMatches (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\server\frames.js:1429:23)
    at Frame.getAttribute (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\server\frames.js:1081:17)
    at FrameDispatcher.getAttribute (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\server\dispatchers\frameDispatcher.js:194:37)
    at FrameDispatcher._handleCommand (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\server\dispatchers\dispatcher.js:94:40)
    at DispatcherConnection.dispatch (C:\Users\beschmal\source\repos\edge.shoreline_testing\shoreline-tests\node_modules\playwright-core\lib\server\dispatchers\dispatcher.js:361:39) {
  [Symbol(step)]: {
    stepId: 'pw:api@676',
    location: {
      file: 'C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\utils\\stackTrace.js',
      line: 49,
      column: 17,
      function: 'captureRawStack'
    },
    category: 'pw:api',
    title: 'locator.getAttribute(#splash-root)',
    apiName: 'locator.getAttribute',
    params: { selector: '#splash-root', name: 'style', strict: true },
    boxedStack: undefined,
    steps: [ [Object] ],
    complete: [Function: complete],
    endWallTime: 1719379639563,
    error: {
      message: 'TimeoutError: locator.getAttribute: Timeout 20000ms exceeded.\n' +
        'Call log:\n' +
        "  \x1B[2m- waiting for locator('#splash-root')\x1B[22m\n",
      stack: 'locator.getAttribute: Timeout 20000ms exceeded.\n' +
        'Call log:\n' +
        "  \x1B[2m- waiting for locator('#splash-root')\x1B[22m\n" +
        '\n' +
        '    at captureRawStack (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\utils\\stackTrace.js:49:17)\n' +
        '    at captureLibraryStackTrace (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\utils\\stackTrace.js:55:17)\n' +
        '    at Frame._wrapApiCall (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\client\\channelOwner.js:163:65)\n' +
        '    at Proxy.<anonymous> (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\client\\channelOwner.js:124:33)\n' +
        '    at Frame.getAttribute (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\client\\frame.js:381:40)\n' +
        '    at Locator.getAttribute (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\client\\locator.js:217:30)\n' +
        '    at callback (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\tests\\shopping\\shopping-helpers.ts:274:36)\n' +
        '    at Timeout._onTimeout (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\tests\\shopping\\shopping-helpers.ts:244:19)\n' +
        '    at listOnTimeout (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node:internal\\timers:569:17)\n' +
        '    at processTimers (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node:internal\\timers:512:7)\n' +
        '<inner error>\n' +
        'TimeoutError: Timeout 20000ms exceeded.\n' +
        'Call log:\n' +
        "  \x1B[2m- waiting for locator('#splash-root')\x1B[22m\n" +
        '\n' +
        '    at ProgressController.run (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\server\\progress.js:78:26)\n' +
        '    at Frame._callOnElementOnceMatches (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\server\\frames.js:1429:23)\n' +
        '    at Frame.getAttribute (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\server\\frames.js:1081:17)\n' +
        '    at FrameDispatcher.getAttribute (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\server\\dispatchers\\frameDispatcher.js:194:37)\n' +
        '    at FrameDispatcher._handleCommand (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\server\\dispatchers\\dispatcher.js:94:40)\n' +
        '    at DispatcherConnection.dispatch (C:\\Users\\beschmal\\source\\repos\\edge.shoreline_testing\\shoreline-tests\\node_modules\\playwright-core\\lib\\server\\dispatchers\\dispatcher.js:361:39)'
    }
  }
}
Closing edge
Context was defined

### Additional context

_No response_

### Environment

```shell
System:
    OS: Windows 11 10.0.22631
    CPU: (16) x64 AMD EPYC 7763 64-Core Processor
    Memory: 37.98 GB / 63.95 GB
  Binaries:
    Node: 18.20.2 - C:\Program Files\nodejs\node.EXE
    npm: 10.2.0 - C:\Program Files\nodejs\npm.CMD
  IDEs:
    VSCode: 1.90.2 - C:\Users\beschmal\AppData\Local\Programs\Microsoft VS Code\bin\code.CMD
  npmPackages:
    @playwright/test: ^1.43.1 => 1.45.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions