Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[Bug]: wait_for_selector() dosn't returns first matching element #3022

Open
@OzMaatuk

Description

Version

1.55

Steps to reproduce

just use page with same element multiple times,
for example multiple continue buttons with 'Continue' span inside.

elm = page.wait_for_selector(CONTINUE_BUTTON_SELECTOR)

Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.12/dist-packages/playwright/sync_api/_generated.py", line 8182, in wait_for_selector
self._sync(
File "/usr/local/lib/python3.12/dist-packages/playwright/_impl/_sync_base.py", line 115, in _sync
return task.result()
^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/playwright/_impl/_page.py", line 423, in wait_for_selector
return await self._main_frame.wait_for_selector(**locals_to_params(locals()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/playwright/_impl/_frame.py", line 369, in wait_for_selector
await self._channel.send(
File "/usr/local/lib/python3.12/dist-packages/playwright/_impl/_connection.py", line 69, in send
return await self._connection.wrap_api_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/playwright/_impl/_connection.py", line 558, in wrap_api_call
raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 30000ms exceeded.
Call log:

  • waiting for locator("span:has-text('Continue')") to be visible
    64 ×ばつ locator resolved to 8 elements. Proceeding with the first one: Continue

Expected behavior

set the first matching element to the elm variable

Actual behavior

as said in logs, should proceed with first match, but instead it throws exception. even if you want to catch the exception and choose element manually, it does not set any value to the elm variable.

Additional context

No response

Environment

- Operating System: [mcr.microsoft.com/playwright/python:v1.55.0-noble]
- CPU: [intel]
- Browser: [MSEdge]
- Python Version: [3.12]
- Other info: tested inside container

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /