Skip to content

[wdspec] Add test to locate the root (html) element with the CSS loca…

748cdfd
Select commit
Loading
Failed to load commit list.
Merged

[Gecko Bug 2020578] [wdspec] Add test to locate the root (html) element with the CSS locator. #58286

[wdspec] Add test to locate the root (html) element with the CSS loca…
748cdfd
Select commit
Loading
Failed to load commit list.
Community-TC Integration / wpt-firefox-nightly-results-without-changes succeeded Mar 5, 2026 in 7m 13s

Community-TC (pull_request)

Collect results for all tests affected by a pull request in firefox but without the changes in the PR.

Details

View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster

Task Status

Started: 2026-03-05T11:32:56.493Z
Resolved: 2026-03-05T11:37:41.404Z
Task Execution Time: 4 minutes, 44 seconds, 911 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: YN3W11_TRKuKEmQZflTUDA
RunId: 0

Artifacts

- public/logs/live_backing.log
- public/logs/live.log
- public/results/checkrun.md
- public/results/wpt_report.json.gz
- public/results/wpt_screenshot.txt.gz

WPT Command: python3 ./wpt run --channel=nightly --no-fail-on-unexpected --log-wptreport=../artifacts/wpt_report.json --log-wptscreenshot=../artifacts/wpt_screenshot.txt --affected task_head --log-mach-level=info --log-mach=- -y --no-pause --no-restart-on-unexpected --install-fonts --verify-log-full --no-headless --binary=/home/test/build/firefox/firefox firefox


[taskcluster 2026-03-05 11:32:56.545Z] Task ID: YN3W11_TRKuKEmQZflTUDA
[taskcluster 2026-03-05 11:32:56.545Z] Worker ID: 2363188114245348230
[taskcluster 2026-03-05 11:32:56.545Z] Worker Group: us-east4-c
[taskcluster 2026-03-05 11:32:56.545Z] Worker Node Type: projects/757942385826/machineTypes/n2-standard-4
[taskcluster 2026-03-05 11:32:56.545Z] Worker Pool: proj-wpt/ci
[taskcluster 2026-03-05 11:32:56.545Z] Worker Version: 46.1.0
[taskcluster 2026-03-05 11:32:56.545Z] Public IP: 34.186.34.55
[taskcluster 2026-03-05 11:32:56.545Z] Hostname: proj-wpt-ci-bv-ukj1asxcueno-jgmtnw

[taskcluster 2026-03-05 11:32:57.469Z] === Task Starting ===
+ '[' '' ']'
+ '[' -d /etc/profile.d ']'
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/01-locale-fix.sh ']'
+ . /etc/profile.d/01-locale-fix.sh
+++ /usr/bin/locale-check C.UTF-8
++ eval
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/apps-bin-path.sh ']'
+ . /etc/profile.d/apps-bin-path.sh

...(8812 lines hidden)...

             "matchType": "full",
             "maxDepth": 0,
             "value": "foobarBARbaz"
         }, ["html"]),
        ({
             "type": "innerText",
             "ignoreCase": True,
             "matchType": "partial",
             "maxDepth": 0,
             "value": "bar"
         }, ["html"]),
        ({
             "type": "innerText",
             "ignoreCase": False,
             "matchType": "partial",
             "maxDepth": 0,
             "value": "BAR"
         }, ["html"]),
        ({
             "type": "innerText",
             "ignoreCase": True,
             "matchType": "full",
             "maxDepth": 2,
             "value": "foobarbarbaz"
         }, ["div"]),
        ({
             "type": "innerText",
             "ignoreCase": False,
             "matchType": "full",
             "maxDepth": 2,
             "value": "foobarBARbaz"
         }, ["div"]),
        ({
             "type": "innerText",
             "ignoreCase": True,
             "matchType": "partial",
             "maxDepth": 2,
             "value": "bar"
         }, ["div"]),
        ({
             "type": "innerText",
             "ignoreCase": False,
             "matchType": "partial",
             "maxDepth": 2,
             "value": "BAR"
         }, ["div"]),
    ], ids=[
        "ignore_case_true_full_match_no_max_depth",
        "ignore_case_false_full_match_no_max_depth",
        "ignore_case_true_partial_match_no_max_depth",
        "ignore_case_false_partial_match_no_max_depth",
        "ignore_case_true_full_match_max_depth_zero",
        "ignore_case_false_full_match_max_depth_zero",
        "ignore_case_true_partial_match_max_depth_zero",
        "ignore_case_false_partial_match_max_depth_zero",
        "ignore_case_true_full_match_max_depth_two",
        "ignore_case_false_full_match_max_depth_two",
        "ignore_case_true_partial_match_max_depth_two",
        "ignore_case_false_partial_match_max_depth_two",
    ])
    @pytest.mark.asyncio
    async def test_find_by_inner_text(bidi_session, inline, top_context, locator, expected_nodes_values):
        url = inline("""<div>foo<span><strong>bar</strong></span><span>BAR</span>baz</div>""")
        await bidi_session.browsing_context.navigate(
            context=top_context["context"], url=url, wait="complete"
        )
    
        # Construct expected nodes list with the expected nodes values emitting other fields.
        expected = [{
            "type": "node",
            "value": {
                "localName": node_value,
            }
        } for node_value in expected_nodes_values]
    
>       result = await bidi_session.browsing_context.locate_nodes(
            context=top_context["context"],
            locator=locator
        )

bidi_session = <webdriver.bidi.client.BidiSession object at 0x7fa8fbc5d690>
expected   = [{'type': 'node', 'value': {'localName': 'div'}}]
expected_nodes_values = ['div']
inline     = <function inline.<locals>.inline at 0x7fa8f9b936d0>
locator    = {'ignoreCase': False,
 'matchType': 'partial',
 'maxDepth': 2,
 'type': 'innerText',
 'value': 'BAR'}
top_context = {'children': [],
 'clientWindow': '9d5d3ebd-8b9d-4671-bb8b-dabd756520a8',
 'context': 'c66a90ab-5bc0-43ef-b421-34c05e4b1698',
 'originalOpener': None,
 'parent': None,
 'url': 'https://web-platform.test:8443/webdriver/tests/support/inline.py?doc=%3C%21doctype+html%3E%0A%3Cmeta+charset%3DUTF-8%3E%0A%3Cdiv%3Efoo%3Cspan%3E%3Cstrong%3Ebar%3C%2Fstrong%3E%3C%2Fspan%3E%3Cspan%3EBAR%3C%2Fspan%3Ebaz%3C%2Fdiv%3E&mime=text%2Fhtml&charset=UTF-8',
 'userContext': 'default'}
url        = 'https://web-platform.test:8443/webdriver/tests/support/inline.py?doc=%3C%21doctype+html%3E%0A%3Cmeta+charset%3DUTF-8%3E%0A%3Cdiv%3Efoo%3Cspan%3E%3Cstrong%3Ebar%3C%2Fstrong%3E%3C%2Fspan%3E%3Cspan%3EBAR%3C%2Fspan%3Ebaz%3C%2Fdiv%3E&mime=text%2Fhtml&charset=UTF-8'

webdriver/tests/bidi/browsing_context/locate_nodes/locator.py:197: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <webdriver.bidi.modules.browsing_context.BrowsingContext object at 0x7fa8fbc5e1d0>
kwargs = {'context': 'c66a90ab-5bc0-43ef-b421-34c05e4b1698', 'locator': {'ignoreCase': False, 'matchType': 'partial', 'maxDepth': 2, 'type': 'innerText', ...}}
raw_result = False, extension_params = {}
params = {'context': 'c66a90ab-5bc0-43ef-b421-34c05e4b1698', 'locator': {'ignoreCase': False, 'matchType': 'partial', 'maxDepth': 2, 'type': 'innerText', ...}}
mod_name = 'browsingContext', cmd_name = 'browsingContext.locateNodes'
future = <Future finished exception=UnsupportedOperationException(unsupported operation, "locator.type" argument with value: in...erver/WebSocketTransport.sys.mjs:127:18
handleEvent@chrome://remote/content/server/WebSocketTransport.sys.mjs:109:14
)>

    @functools.wraps(params_fn)
    async def inner(self: Any, **kwargs: Any) -> Any:
        raw_result = kwargs.pop("raw_result", False)
        extension_params = kwargs.pop("_extension_params", {})
    
        params = remove_undefined(params_fn(self, **kwargs))
    
        # Convert the classname and the method name to a bidi command name
        mod_name = owner.__name__[0].lower() + owner.__name__[1:]
        if hasattr(owner, "prefix"):
            mod_name = f"{owner.prefix}:{mod_name}"
        cmd_name = f"{mod_name}.{to_camelcase(name)}"
    
        # Verify specified vendor parameters
        for key in extension_params:
            if ":" not in key:
                raise ValueError(f"Extension parameter '{key}' misses prefix.")
    
        # Merge into params (vendor keys win if duplicates)
        params.update(extension_params)
    
        future = await self.session.send_command(cmd_name, params)
>       result = await future
E       webdriver.bidi.error.UnsupportedOperationException: unsupported operation ("locator.type" argument with value: innerText is not supported yet.)
E       
E       Remote-end stacktrace:
E       
E       RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
E       WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:202:5
E       UnsupportedOperationError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:978:5
E       locateNodes@chrome://remote/content/webdriver-bidi/modules/root/browsingContext.sys.mjs:1234:13
E       handleCommand@chrome://remote/content/shared/messagehandler/MessageHandler.sys.mjs:285:33
E       execute@chrome://remote/content/shared/webdriver/Session.sys.mjs:453:32
E       onPacket@chrome://remote/content/webdriver-bidi/WebDriverBiDiConnection.sys.mjs:236:37
E       onMessage@chrome://remote/content/server/WebSocketTransport.sys.mjs:127:18
E       handleEvent@chrome://remote/content/server/WebSocketTransport.sys.mjs:109:14

cmd_name   = 'browsingContext.locateNodes'
extension_params = {}
future     = <Future finished exception=UnsupportedOperationException(unsupported operation, "locator.type" argument with value: innerText is not supported yet., RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:202:5
UnsupportedOperationError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:978:5
locateNodes@chrome://remote/content/webdriver-bidi/modules/root/browsingContext.sys.mjs:1234:13
handleCommand@chrome://remote/content/shared/messagehandler/MessageHandler.sys.mjs:285:33
execute@chrome://remote/content/shared/webdriver/Session.sys.mjs:453:32
onPacket@chrome://remote/content/webdriver-bidi/WebDriverBiDiConnection.sys.mjs:236:37
onMessage@chrome://remote/content/server/WebSocketTransport.sys.mjs:127:18
handleEvent@chrome://remote/content/server/WebSocketTransport.sys.mjs:109:14
)>
kwargs     = {'context': 'c66a90ab-5bc0-43ef-b421-34c05e4b1698',
 'locator': {'ignoreCase': False,
             'matchType': 'partial',
             'maxDepth': 2,
             'type': 'innerText',
             'value': 'BAR'}}
mod_name   = 'browsingContext'
name       = 'locate_nodes'
owner      = <class 'webdriver.bidi.modules.browsing_context.BrowsingContext'>
params     = {'context': 'c66a90ab-5bc0-43ef-b421-34c05e4b1698',
 'locator': {'ignoreCase': False,
             'matchType': 'partial',
             'maxDepth': 2,
             'type': 'innerText',
             'value': 'BAR'}}
params_fn  = <function BrowsingContext.locate_nodes at 0x7fa8f9e7aa70>
raw_result = False
result_fn  = <function BrowsingContext._locate_nodes at 0x7fa8f9e7ab00>
self       = <webdriver.bidi.modules.browsing_context.BrowsingContext object at 0x7fa8fbc5e1d0>

tools/webdriver/webdriver/bidi/modules/_module.py:86: UnsupportedOperationException
 0:59.55 INFO Got 1 unexpected results, with 0 unexpected passes
 0:59.55 wptserve INFO Stopped http server on 127.0.0.1:8000
 0:59.55 wptserve INFO Stopped http server on 127.0.0.1:8001
 0:59.56 wptserve INFO Stopped http server on 127.0.0.1:8002
 0:59.56 wptserve INFO Stopped http server on 127.0.0.1:8003
 0:59.56 wptserve INFO Stopped http server on 127.0.0.1:8443
 0:59.56 wptserve INFO Stopped http server on 127.0.0.1:8444
 0:59.56 wptserve INFO Stopped http server on 127.0.0.1:8445
 0:59.57 wptserve INFO Stopped http server on 127.0.0.1:8446
 0:59.57 wptserve INFO Stopped http server on 127.0.0.1:9000
 0:59.57 wptserve INFO Stopped WebTransport over HTTP/3 server on 127.0.0.1:11000
 0:59.71 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888))
 0:59.72 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889))
 0:59.77 INFO Removed font: Ahem.ttf
 0:59.80 INFO Closing logging queue
 0:59.80 INFO queue closed
 0:59.80 INFO Tolerating 1 unexpected results
[taskcluster 2026-03-05 11:37:38.469Z] === Task Finished ===
[taskcluster 2026-03-05 11:37:39.401Z] Successful task run with exit code: 0 completed in 282.856 seconds