[Gecko Bug 2020578] [wdspec] Add test to locate the root (html) element with the CSS locator. #58286
Community-TC (pull_request)
Collect results for all tests affected by a pull request in firefox.
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-03-05T11:32:01.219Z
Resolved: 2026-03-05T11:36:59.503Z
Task Execution Time: 4 minutes, 58 seconds, 284 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: FcWVbmPZTEWuT5iCiodlnA
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 base_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:01.287Z] Task ID: FcWVbmPZTEWuT5iCiodlnA
[taskcluster 2026-03-05 11:32:01.287Z] Worker ID: 5955753675518699731
[taskcluster 2026-03-05 11:32:01.287Z] Worker Group: us-central1-a
[taskcluster 2026-03-05 11:32:01.287Z] Worker Node Type: projects/757942385826/machineTypes/n2-standard-4
[taskcluster 2026-03-05 11:32:01.287Z] Worker Pool: proj-wpt/ci
[taskcluster 2026-03-05 11:32:01.287Z] Worker Version: 46.1.0
[taskcluster 2026-03-05 11:32:01.287Z] Public IP: 34.61.203.146
[taskcluster 2026-03-05 11:32:01.287Z] Hostname: proj-wpt-ci-e-04fou4rygkwstoy58iqq
[taskcluster 2026-03-05 11:32:02.439Z] === 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
...(9328 lines hidden)...
"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",
])
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 0x7f2f3731b310>
expected = [{'type': 'node', 'value': {'localName': 'div'}}]
expected_nodes_values = ['div']
inline = <function inline.<locals>.inline at 0x7f2f348b83a0>
locator = {'ignoreCase': False,
'matchType': 'partial',
'maxDepth': 2,
'type': 'innerText',
'value': 'BAR'}
top_context = {'children': [],
'clientWindow': '1f01aaca-404e-458a-8f9d-e11c6bd17587',
'context': 'f8dcaf27-2569-4cc0-8f0a-4ea102e0f0cc',
'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:240:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <webdriver.bidi.modules.browsing_context.BrowsingContext object at 0x7f2f359cfd60>
kwargs = {'context': 'f8dcaf27-2569-4cc0-8f0a-4ea102e0f0cc', 'locator': {'ignoreCase': False, 'matchType': 'partial', 'maxDepth': 2, 'type': 'innerText', ...}}
raw_result = False, extension_params = {}
params = {'context': 'f8dcaf27-2569-4cc0-8f0a-4ea102e0f0cc', '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': 'f8dcaf27-2569-4cc0-8f0a-4ea102e0f0cc',
'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': 'f8dcaf27-2569-4cc0-8f0a-4ea102e0f0cc',
'locator': {'ignoreCase': False,
'matchType': 'partial',
'maxDepth': 2,
'type': 'innerText',
'value': 'BAR'}}
params_fn = <function BrowsingContext.locate_nodes at 0x7f2f3553aa70>
raw_result = False
result_fn = <function BrowsingContext._locate_nodes at 0x7f2f3553ab00>
self = <webdriver.bidi.modules.browsing_context.BrowsingContext object at 0x7f2f359cfd60>
tools/webdriver/webdriver/bidi/modules/_module.py:86: UnsupportedOperationException
1:13.64 INFO Got 1 unexpected results, with 0 unexpected passes
1:13.64 wptserve INFO Stopped http server on 127.0.0.1:8000
1:13.65 wptserve INFO Stopped http server on 127.0.0.1:8001
1:13.65 wptserve INFO Stopped http server on 127.0.0.1:8002
1:13.65 wptserve INFO Stopped http server on 127.0.0.1:8003
1:13.66 wptserve INFO Stopped http server on 127.0.0.1:8446
1:13.66 wptserve INFO Stopped http server on 127.0.0.1:8443
1:13.66 wptserve INFO Stopped http server on 127.0.0.1:8444
1:13.66 wptserve INFO Stopped http server on 127.0.0.1:8445
1:13.68 wptserve INFO Stopped http server on 127.0.0.1:9000
1:13.68 wptserve INFO Stopped WebTransport over HTTP/3 server on 127.0.0.1:11000
1:13.88 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888))
1:13.88 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889))
1:13.91 INFO Removed font: Ahem.ttf
1:13.94 INFO Closing logging queue
1:13.94 INFO queue closed
1:13.94 INFO Tolerating 1 unexpected results
[taskcluster 2026-03-05 11:36:57.375Z] === Task Finished ===
[taskcluster 2026-03-05 11:36:58.339Z] Successful task run with exit code: 0 completed in 297.052 seconds