tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 42f4cdd2316ce40c80db8ef2f3886d0cbb4b8862
parent d90bc672c55380ee15840db35a6e0a071693ed63
Author: Euclid Ye <yezhizhenjiakang@gmail.com>
Date:   Thu, 27 Nov 2025 15:28:54 +0000

Bug 2002755 [wpt PR 56324] - webdriver: Enable implicit wait on error, a=testonly

Automatic update from web-platform-tests
Add implicit wait test for "find element"

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>

--
Add implicit wait test for "find element from element"

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>

--
Add implicit wait test for "find element from shadow root"

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>

--

wpt-commits: f337c6ee1db3b2400b5e3d3f7555a8e0fadbbd30, 9e1ae62739e71c704608e7507e4faa57565c4769, 7e6c18f308e1a332a10030d05332c4a071909bf9
wpt-pr: 56324

Diffstat:
Mtesting/web-platform/tests/webdriver/tests/classic/find_element/find.py | 26++++++++++++++++++++++++++
Mtesting/web-platform/tests/webdriver/tests/classic/find_element_from_element/find.py | 26++++++++++++++++++++++++++
Mtesting/web-platform/tests/webdriver/tests/classic/find_element_from_shadow_root/find.py | 31+++++++++++++++++++++++++++++++
3 files changed, 83 insertions(+), 0 deletions(-)

diff --git a/testing/web-platform/tests/webdriver/tests/classic/find_element/find.py b/testing/web-platform/tests/webdriver/tests/classic/find_element/find.py @@ -119,3 +119,29 @@ def test_htmldocument(session, inline, using, value): session.url = inline("") response = find_element(session, using, value) assert_success(response) + + +def test_implicit_wait(session, inline): + session.url = inline(""" + <script> + setTimeout(() => { + document.body.innerHTML = '<div id="delayed"></div>'; + }, 300); + </script> + """) + session.timeouts.implicit = 1 + + response = find_element(session, "css selector", "#delayed") + value = assert_success(response) + + expected = session.execute_script("return document.getElementById('delayed')") + assert_same_element(session, value, expected) + + +def test_implicit_wait_timeout(session, inline): + session.url = inline("") + session.timeouts.implicit = 0.5 + + # Element never created + response = find_element(session, "css selector", "#nonexistent") + assert_error(response, "no such element") diff --git a/testing/web-platform/tests/webdriver/tests/classic/find_element_from_element/find.py b/testing/web-platform/tests/webdriver/tests/classic/find_element_from_element/find.py @@ -177,3 +177,29 @@ def test_parent_of_document_node_errors(session, inline): response = find_element(session, from_element.id, "xpath", "..") assert_error(response, "invalid selector") + +def test_implicit_wait(session, inline): + session.url = inline(""" + <div id="parent"></div> + <script> + setTimeout(() => { + document.getElementById('parent').innerHTML = '<div id="delayed"></div>'; + }, 300); + </script> + """) + session.timeouts.implicit = 1 + + from_element = session.find.css("#parent", all=False) + response = find_element(session, from_element.id, "css selector", "#delayed") + value = assert_success(response) + + expected = session.execute_script("return document.getElementById('delayed')") + assert_same_element(session, value, expected) + +def test_implicit_wait_timeout(session, inline): + session.url = inline("<div id='parent'></div>") + session.timeouts.implicit = 0.5 + + from_element = session.find.css("#parent", all=False) + response = find_element(session, from_element.id, "css selector", "#nonexistent") + assert_error(response, "no such element") diff --git a/testing/web-platform/tests/webdriver/tests/classic/find_element_from_shadow_root/find.py b/testing/web-platform/tests/webdriver/tests/classic/find_element_from_shadow_root/find.py @@ -245,3 +245,34 @@ def test_find_element_in_nested_shadow_root(session, get_test_page, mode): element = WebElement.from_json(value, session) assert element.text == expected_text + +def test_implicit_wait_shadow_root(session, get_test_page): + session.url = get_test_page() + session.timeouts.implicit = 1 + + session.execute_script(""" + setTimeout(() => { + const host = document.querySelector('custom-element'); + const input = document.createElement('input'); + input.id = 'delayed'; + host.shadowRoot.appendChild(input); + }, 300); + """) + + shadow_root = session.find.css("custom-element", all=False).shadow_root + response = find_element(session, shadow_root.id, "css selector", "#delayed") + value = assert_success(response) + + expected = session.execute_script(""" + return arguments[0].shadowRoot.getElementById('delayed') + """, args=(session.find.css("custom-element", all=False),)) + assert_same_element(session, value, expected) + + +def test_implicit_wait_timeout(session, get_test_page): + session.url = get_test_page() + session.timeouts.implicit = 0.5 + + shadow_root = session.find.css("custom-element", all=False).shadow_root + response = find_element(session, shadow_root.id, "css selector", "#nonexistent") + assert_error(response, "no such element")