Skip to content

Conformance rules for navigation timings and page-level assertion targets #479

Closed

Description

@vishnuv688

Part of #278.

Two bugs fixed this week were caught by review rather than by the conformance suite, because no rule covers them:

  1. Navigation rows carry performance timings. Core's capture script never returned its payload, so the WDIO service, Selenium and Nightwatch attached no timings to any navigation row (fix: read navigation performance timings without breaking Nightwatch commands #467). The capability matrix marks "Performance timings on navigation rows" as checked by hand for those three adapters.
  2. An assertion on a page-level value names no element. assert.notEqual(await driver.getTitle(), 'Welcome') boxed an element whose earlier read returned 'Welcome' (fix(core): name no target when an assert's subject belongs to no element #476, and the Python equivalent in Give Python assertion rows the element their value was read from #475).

Proposal

  • Have the fake browser answer the performance script with a navigation entry, and add a rule that every navigation row eventually carries performance (after its replaceCommand).
  • Add a scenario step where a title read and an element read return the same text, assert on the title, and add a rule (or agreement field) that the assertion row carries no selector.
  • Back the "Performance timings" cells in packages/conformance/src/features.ts with the new rule, regenerate the tables, and mirror them to the docs site.

Acceptance

Activity

  1. self-assigned this
    on Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

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