kitesurf · WPT

FAIL
expected FAIL · 972 ms
▶ run in kitesurf
Test
/dom/nodes/ParentNode-querySelector-All.html
Actual
FAIL
Expected
FAIL
Unexpected
no
Duration
972 ms
Harness
OK
Counts
Reason
Run
https://kitesurf.rendering.cfdata.org/?url=http%3A%2F%2Fwpt.live%2Fdom%2Fnodes%2FParentNode-querySelector-All.html ↗
Upstream
view on github.com/web-platform-tests/wpt ↗

Subtests

statussubtestmessage
PASSSelectors-API Test Suite: HTML
PASSDocument supports querySelector
PASSDocument supports querySelectorAll
PASSDocument.querySelectorAll returns NodeList instance
PASSDetached Element supports querySelector
PASSDetached Element supports querySelectorAll
PASSDetached Element.querySelectorAll returns NodeList instance
PASSFragment supports querySelector
PASSFragment supports querySelectorAll
PASSFragment.querySelectorAll returns NodeList instance
PASSIn-document Element supports querySelector
PASSIn-document Element supports querySelectorAll
PASSIn-document Element.querySelectorAll returns NodeList instance
PASSDocument.querySelectorAll null
PASSDocument.querySelectorAll undefined
PASSDocument.querySelectorAll no parameter
PASSDocument.querySelector null
PASSDocument.querySelector undefined
PASSDocument.querySelector no parameter
PASSDocument.querySelectorAll tree order
PASSDetached Element.querySelectorAll null
PASSDetached Element.querySelectorAll undefined
PASSDetached Element.querySelectorAll no parameter
PASSDetached Element.querySelector null
PASSDetached Element.querySelector undefined
PASSDetached Element.querySelector no parameter
PASSDetached Element.querySelectorAll tree order
PASSFragment.querySelectorAll null
PASSFragment.querySelectorAll undefined
PASSFragment.querySelectorAll no parameter
PASSFragment.querySelector null
PASSFragment.querySelector undefined
PASSFragment.querySelector no parameter
PASSFragment.querySelectorAll tree order
PASSIn-document Element.querySelectorAll null
PASSIn-document Element.querySelectorAll undefined
PASSIn-document Element.querySelectorAll no parameter
PASSIn-document Element.querySelector null
PASSIn-document Element.querySelector undefined
PASSIn-document Element.querySelector no parameter
PASSIn-document Element.querySelectorAll tree order
PASSDocument: static NodeList
PASSDocument: new NodeList
PASSDetached Element: static NodeList
PASSDetached Element: new NodeList
PASSFragment: static NodeList
PASSFragment: new NodeList
PASSIn-document Element: static NodeList
PASSIn-document Element: new NodeList
PASSDocument.querySelector: Empty String:
PASSDocument.querySelectorAll: Empty String:
PASSDocument.querySelector: Invalid character: [
PASSDocument.querySelectorAll: Invalid character: [
PASSDocument.querySelector: Invalid character: ]
PASSDocument.querySelectorAll: Invalid character: ]
PASSDocument.querySelector: Invalid character: (
PASSDocument.querySelectorAll: Invalid character: (
PASSDocument.querySelector: Invalid character: )
PASSDocument.querySelectorAll: Invalid character: )
PASSDocument.querySelector: Invalid character: {
PASSDocument.querySelectorAll: Invalid character: {
PASSDocument.querySelector: Invalid character: }
PASSDocument.querySelectorAll: Invalid character: }
PASSDocument.querySelector: Invalid character: <
PASSDocument.querySelectorAll: Invalid character: <
PASSDocument.querySelector: Invalid character: >
PASSDocument.querySelectorAll: Invalid character: >
PASSDocument.querySelector: Invalid ID: #
PASSDocument.querySelectorAll: Invalid ID: #
PASSDocument.querySelector: Invalid group of selectors: div,
PASSDocument.querySelectorAll: Invalid group of selectors: div,
PASSDocument.querySelector: Invalid class: .
PASSDocument.querySelectorAll: Invalid class: .
PASSDocument.querySelector: Invalid class: .5cm
PASSDocument.querySelectorAll: Invalid class: .5cm
PASSDocument.querySelector: Invalid class: ..test
PASSDocument.querySelectorAll: Invalid class: ..test
PASSDocument.querySelector: Invalid class: .foo..quux
PASSDocument.querySelectorAll: Invalid class: .foo..quux
PASSDocument.querySelector: Invalid class: .bar.
PASSDocument.querySelectorAll: Invalid class: .bar.
PASSDocument.querySelector: Invalid combinator: div % address, p
PASSDocument.querySelectorAll: Invalid combinator: div % address, p
PASSDocument.querySelector: Invalid combinator: div ++ address, p
PASSDocument.querySelectorAll: Invalid combinator: div ++ address, p
PASSDocument.querySelector: Invalid combinator: div ~~ address, p
PASSDocument.querySelectorAll: Invalid combinator: div ~~ address, p
PASSDocument.querySelector: Invalid [att=value] selector: [*=test]
PASSDocument.querySelectorAll: Invalid [att=value] selector: [*=test]
PASSDocument.querySelector: Invalid [att=value] selector: [*|*=test]
PASSDocument.querySelectorAll: Invalid [att=value] selector: [*|*=test]
PASSDocument.querySelector: Invalid [att=value] selector: [class= space unquoted ]
PASSDocument.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
PASSDocument.querySelector: Unknown pseudo-class: div:example
PASSDocument.querySelectorAll: Unknown pseudo-class: div:example
PASSDocument.querySelector: Unknown pseudo-class: :example
PASSDocument.querySelectorAll: Unknown pseudo-class: :example
PASSDocument.querySelector: Unknown pseudo-class: div:linkexample
PASSDocument.querySelectorAll: Unknown pseudo-class: div:linkexample
PASSDocument.querySelector: Unknown pseudo-element: div::example
PASSDocument.querySelectorAll: Unknown pseudo-element: div::example
PASSDocument.querySelector: Unknown pseudo-element: ::example
PASSDocument.querySelectorAll: Unknown pseudo-element: ::example
PASSDocument.querySelector: Invalid pseudo-element: :::before
PASSDocument.querySelectorAll: Invalid pseudo-element: :::before
PASSDocument.querySelector: Invalid pseudo-element: :: before
PASSDocument.querySelectorAll: Invalid pseudo-element: :: before
PASSDocument.querySelector: Undeclared namespace: ns|div
PASSDocument.querySelectorAll: Undeclared namespace: ns|div
PASSDocument.querySelector: Undeclared namespace: :not(ns|div)
PASSDocument.querySelectorAll: Undeclared namespace: :not(ns|div)
PASSDocument.querySelector: Invalid namespace: ^|div
PASSDocument.querySelectorAll: Invalid namespace: ^|div
PASSDocument.querySelector: Invalid namespace: $|div
PASSDocument.querySelectorAll: Invalid namespace: $|div
PASSDocument.querySelector: Relative selector: >*
PASSDocument.querySelectorAll: Relative selector: >*
PASSDetached Element.querySelector: Empty String:
PASSDetached Element.querySelectorAll: Empty String:
PASSDetached Element.querySelector: Invalid character: [
PASSDetached Element.querySelectorAll: Invalid character: [
PASSDetached Element.querySelector: Invalid character: ]
PASSDetached Element.querySelectorAll: Invalid character: ]
PASSDetached Element.querySelector: Invalid character: (
PASSDetached Element.querySelectorAll: Invalid character: (
PASSDetached Element.querySelector: Invalid character: )
PASSDetached Element.querySelectorAll: Invalid character: )
PASSDetached Element.querySelector: Invalid character: {
PASSDetached Element.querySelectorAll: Invalid character: {
PASSDetached Element.querySelector: Invalid character: }
PASSDetached Element.querySelectorAll: Invalid character: }
PASSDetached Element.querySelector: Invalid character: <
PASSDetached Element.querySelectorAll: Invalid character: <
PASSDetached Element.querySelector: Invalid character: >
PASSDetached Element.querySelectorAll: Invalid character: >
PASSDetached Element.querySelector: Invalid ID: #
PASSDetached Element.querySelectorAll: Invalid ID: #
PASSDetached Element.querySelector: Invalid group of selectors: div,
PASSDetached Element.querySelectorAll: Invalid group of selectors: div,
PASSDetached Element.querySelector: Invalid class: .
PASSDetached Element.querySelectorAll: Invalid class: .
PASSDetached Element.querySelector: Invalid class: .5cm
PASSDetached Element.querySelectorAll: Invalid class: .5cm
PASSDetached Element.querySelector: Invalid class: ..test
PASSDetached Element.querySelectorAll: Invalid class: ..test
PASSDetached Element.querySelector: Invalid class: .foo..quux
PASSDetached Element.querySelectorAll: Invalid class: .foo..quux
PASSDetached Element.querySelector: Invalid class: .bar.
PASSDetached Element.querySelectorAll: Invalid class: .bar.
PASSDetached Element.querySelector: Invalid combinator: div % address, p
PASSDetached Element.querySelectorAll: Invalid combinator: div % address, p
PASSDetached Element.querySelector: Invalid combinator: div ++ address, p
PASSDetached Element.querySelectorAll: Invalid combinator: div ++ address, p
PASSDetached Element.querySelector: Invalid combinator: div ~~ address, p
PASSDetached Element.querySelectorAll: Invalid combinator: div ~~ address, p
PASSDetached Element.querySelector: Invalid [att=value] selector: [*=test]
PASSDetached Element.querySelectorAll: Invalid [att=value] selector: [*=test]
PASSDetached Element.querySelector: Invalid [att=value] selector: [*|*=test]
PASSDetached Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]
PASSDetached Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]
PASSDetached Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
PASSDetached Element.querySelector: Unknown pseudo-class: div:example
PASSDetached Element.querySelectorAll: Unknown pseudo-class: div:example
PASSDetached Element.querySelector: Unknown pseudo-class: :example
PASSDetached Element.querySelectorAll: Unknown pseudo-class: :example
PASSDetached Element.querySelector: Unknown pseudo-class: div:linkexample
PASSDetached Element.querySelectorAll: Unknown pseudo-class: div:linkexample
PASSDetached Element.querySelector: Unknown pseudo-element: div::example
PASSDetached Element.querySelectorAll: Unknown pseudo-element: div::example
PASSDetached Element.querySelector: Unknown pseudo-element: ::example
PASSDetached Element.querySelectorAll: Unknown pseudo-element: ::example
PASSDetached Element.querySelector: Invalid pseudo-element: :::before
PASSDetached Element.querySelectorAll: Invalid pseudo-element: :::before
PASSDetached Element.querySelector: Invalid pseudo-element: :: before
PASSDetached Element.querySelectorAll: Invalid pseudo-element: :: before
PASSDetached Element.querySelector: Undeclared namespace: ns|div
PASSDetached Element.querySelectorAll: Undeclared namespace: ns|div
PASSDetached Element.querySelector: Undeclared namespace: :not(ns|div)
PASSDetached Element.querySelectorAll: Undeclared namespace: :not(ns|div)
PASSDetached Element.querySelector: Invalid namespace: ^|div
PASSDetached Element.querySelectorAll: Invalid namespace: ^|div
PASSDetached Element.querySelector: Invalid namespace: $|div
PASSDetached Element.querySelectorAll: Invalid namespace: $|div
PASSDetached Element.querySelector: Relative selector: >*
PASSDetached Element.querySelectorAll: Relative selector: >*
PASSFragment.querySelector: Empty String:
PASSFragment.querySelectorAll: Empty String:
PASSFragment.querySelector: Invalid character: [
PASSFragment.querySelectorAll: Invalid character: [
PASSFragment.querySelector: Invalid character: ]
PASSFragment.querySelectorAll: Invalid character: ]
PASSFragment.querySelector: Invalid character: (
PASSFragment.querySelectorAll: Invalid character: (
PASSFragment.querySelector: Invalid character: )
PASSFragment.querySelectorAll: Invalid character: )
PASSFragment.querySelector: Invalid character: {
PASSFragment.querySelectorAll: Invalid character: {
PASSFragment.querySelector: Invalid character: }
PASSFragment.querySelectorAll: Invalid character: }
PASSFragment.querySelector: Invalid character: <
PASSFragment.querySelectorAll: Invalid character: <
PASSFragment.querySelector: Invalid character: >
PASSFragment.querySelectorAll: Invalid character: >
PASSFragment.querySelector: Invalid ID: #
PASSFragment.querySelectorAll: Invalid ID: #
PASSFragment.querySelector: Invalid group of selectors: div,
PASSFragment.querySelectorAll: Invalid group of selectors: div,
PASSFragment.querySelector: Invalid class: .
PASSFragment.querySelectorAll: Invalid class: .
PASSFragment.querySelector: Invalid class: .5cm
PASSFragment.querySelectorAll: Invalid class: .5cm
PASSFragment.querySelector: Invalid class: ..test
PASSFragment.querySelectorAll: Invalid class: ..test
PASSFragment.querySelector: Invalid class: .foo..quux
PASSFragment.querySelectorAll: Invalid class: .foo..quux
PASSFragment.querySelector: Invalid class: .bar.
PASSFragment.querySelectorAll: Invalid class: .bar.
PASSFragment.querySelector: Invalid combinator: div % address, p
PASSFragment.querySelectorAll: Invalid combinator: div % address, p
PASSFragment.querySelector: Invalid combinator: div ++ address, p
PASSFragment.querySelectorAll: Invalid combinator: div ++ address, p
PASSFragment.querySelector: Invalid combinator: div ~~ address, p
PASSFragment.querySelectorAll: Invalid combinator: div ~~ address, p
PASSFragment.querySelector: Invalid [att=value] selector: [*=test]
PASSFragment.querySelectorAll: Invalid [att=value] selector: [*=test]
PASSFragment.querySelector: Invalid [att=value] selector: [*|*=test]
PASSFragment.querySelectorAll: Invalid [att=value] selector: [*|*=test]
PASSFragment.querySelector: Invalid [att=value] selector: [class= space unquoted ]
PASSFragment.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
PASSFragment.querySelector: Unknown pseudo-class: div:example
PASSFragment.querySelectorAll: Unknown pseudo-class: div:example
PASSFragment.querySelector: Unknown pseudo-class: :example
PASSFragment.querySelectorAll: Unknown pseudo-class: :example
PASSFragment.querySelector: Unknown pseudo-class: div:linkexample
PASSFragment.querySelectorAll: Unknown pseudo-class: div:linkexample
PASSFragment.querySelector: Unknown pseudo-element: div::example
PASSFragment.querySelectorAll: Unknown pseudo-element: div::example
PASSFragment.querySelector: Unknown pseudo-element: ::example
PASSFragment.querySelectorAll: Unknown pseudo-element: ::example
PASSFragment.querySelector: Invalid pseudo-element: :::before
PASSFragment.querySelectorAll: Invalid pseudo-element: :::before
PASSFragment.querySelector: Invalid pseudo-element: :: before
PASSFragment.querySelectorAll: Invalid pseudo-element: :: before
PASSFragment.querySelector: Undeclared namespace: ns|div
PASSFragment.querySelectorAll: Undeclared namespace: ns|div
PASSFragment.querySelector: Undeclared namespace: :not(ns|div)
PASSFragment.querySelectorAll: Undeclared namespace: :not(ns|div)
PASSFragment.querySelector: Invalid namespace: ^|div
PASSFragment.querySelectorAll: Invalid namespace: ^|div
PASSFragment.querySelector: Invalid namespace: $|div
PASSFragment.querySelectorAll: Invalid namespace: $|div
PASSFragment.querySelector: Relative selector: >*
PASSFragment.querySelectorAll: Relative selector: >*
PASSIn-document Element.querySelector: Empty String:
PASSIn-document Element.querySelectorAll: Empty String:
PASSIn-document Element.querySelector: Invalid character: [
PASSIn-document Element.querySelectorAll: Invalid character: [
PASSIn-document Element.querySelector: Invalid character: ]
PASSIn-document Element.querySelectorAll: Invalid character: ]
PASSIn-document Element.querySelector: Invalid character: (
PASSIn-document Element.querySelectorAll: Invalid character: (
PASSIn-document Element.querySelector: Invalid character: )
PASSIn-document Element.querySelectorAll: Invalid character: )
PASSIn-document Element.querySelector: Invalid character: {
PASSIn-document Element.querySelectorAll: Invalid character: {
PASSIn-document Element.querySelector: Invalid character: }
PASSIn-document Element.querySelectorAll: Invalid character: }
PASSIn-document Element.querySelector: Invalid character: <
PASSIn-document Element.querySelectorAll: Invalid character: <
PASSIn-document Element.querySelector: Invalid character: >
PASSIn-document Element.querySelectorAll: Invalid character: >
PASSIn-document Element.querySelector: Invalid ID: #
PASSIn-document Element.querySelectorAll: Invalid ID: #
PASSIn-document Element.querySelector: Invalid group of selectors: div,
PASSIn-document Element.querySelectorAll: Invalid group of selectors: div,
PASSIn-document Element.querySelector: Invalid class: .
PASSIn-document Element.querySelectorAll: Invalid class: .
PASSIn-document Element.querySelector: Invalid class: .5cm
PASSIn-document Element.querySelectorAll: Invalid class: .5cm
PASSIn-document Element.querySelector: Invalid class: ..test
PASSIn-document Element.querySelectorAll: Invalid class: ..test
PASSIn-document Element.querySelector: Invalid class: .foo..quux
PASSIn-document Element.querySelectorAll: Invalid class: .foo..quux
PASSIn-document Element.querySelector: Invalid class: .bar.
PASSIn-document Element.querySelectorAll: Invalid class: .bar.
PASSIn-document Element.querySelector: Invalid combinator: div % address, p
PASSIn-document Element.querySelectorAll: Invalid combinator: div % address, p
PASSIn-document Element.querySelector: Invalid combinator: div ++ address, p
PASSIn-document Element.querySelectorAll: Invalid combinator: div ++ address, p
PASSIn-document Element.querySelector: Invalid combinator: div ~~ address, p
PASSIn-document Element.querySelectorAll: Invalid combinator: div ~~ address, p
PASSIn-document Element.querySelector: Invalid [att=value] selector: [*=test]
PASSIn-document Element.querySelectorAll: Invalid [att=value] selector: [*=test]
PASSIn-document Element.querySelector: Invalid [att=value] selector: [*|*=test]
PASSIn-document Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]
PASSIn-document Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]
PASSIn-document Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
PASSIn-document Element.querySelector: Unknown pseudo-class: div:example
PASSIn-document Element.querySelectorAll: Unknown pseudo-class: div:example
PASSIn-document Element.querySelector: Unknown pseudo-class: :example
PASSIn-document Element.querySelectorAll: Unknown pseudo-class: :example
PASSIn-document Element.querySelector: Unknown pseudo-class: div:linkexample
PASSIn-document Element.querySelectorAll: Unknown pseudo-class: div:linkexample
PASSIn-document Element.querySelector: Unknown pseudo-element: div::example
PASSIn-document Element.querySelectorAll: Unknown pseudo-element: div::example
PASSIn-document Element.querySelector: Unknown pseudo-element: ::example
PASSIn-document Element.querySelectorAll: Unknown pseudo-element: ::example
PASSIn-document Element.querySelector: Invalid pseudo-element: :::before
PASSIn-document Element.querySelectorAll: Invalid pseudo-element: :::before
PASSIn-document Element.querySelector: Invalid pseudo-element: :: before
PASSIn-document Element.querySelectorAll: Invalid pseudo-element: :: before
PASSIn-document Element.querySelector: Undeclared namespace: ns|div
PASSIn-document Element.querySelectorAll: Undeclared namespace: ns|div
PASSIn-document Element.querySelector: Undeclared namespace: :not(ns|div)
PASSIn-document Element.querySelectorAll: Undeclared namespace: :not(ns|div)
PASSIn-document Element.querySelector: Invalid namespace: ^|div
PASSIn-document Element.querySelectorAll: Invalid namespace: ^|div
PASSIn-document Element.querySelector: Invalid namespace: $|div
PASSIn-document Element.querySelectorAll: Invalid namespace: $|div
PASSIn-document Element.querySelector: Relative selector: >*
PASSIn-document Element.querySelectorAll: Relative selector: >*
PASSEmpty Element.querySelector: Empty String:
PASSEmpty Element.querySelectorAll: Empty String:
PASSEmpty Element.querySelector: Invalid character: [
PASSEmpty Element.querySelectorAll: Invalid character: [
PASSEmpty Element.querySelector: Invalid character: ]
PASSEmpty Element.querySelectorAll: Invalid character: ]
PASSEmpty Element.querySelector: Invalid character: (
PASSEmpty Element.querySelectorAll: Invalid character: (
PASSEmpty Element.querySelector: Invalid character: )
PASSEmpty Element.querySelectorAll: Invalid character: )
PASSEmpty Element.querySelector: Invalid character: {
PASSEmpty Element.querySelectorAll: Invalid character: {
PASSEmpty Element.querySelector: Invalid character: }
PASSEmpty Element.querySelectorAll: Invalid character: }
PASSEmpty Element.querySelector: Invalid character: <
PASSEmpty Element.querySelectorAll: Invalid character: <
PASSEmpty Element.querySelector: Invalid character: >
PASSEmpty Element.querySelectorAll: Invalid character: >
PASSEmpty Element.querySelector: Invalid ID: #
PASSEmpty Element.querySelectorAll: Invalid ID: #
PASSEmpty Element.querySelector: Invalid group of selectors: div,
PASSEmpty Element.querySelectorAll: Invalid group of selectors: div,
PASSEmpty Element.querySelector: Invalid class: .
PASSEmpty Element.querySelectorAll: Invalid class: .
PASSEmpty Element.querySelector: Invalid class: .5cm
PASSEmpty Element.querySelectorAll: Invalid class: .5cm
PASSEmpty Element.querySelector: Invalid class: ..test
PASSEmpty Element.querySelectorAll: Invalid class: ..test
PASSEmpty Element.querySelector: Invalid class: .foo..quux
PASSEmpty Element.querySelectorAll: Invalid class: .foo..quux
PASSEmpty Element.querySelector: Invalid class: .bar.
PASSEmpty Element.querySelectorAll: Invalid class: .bar.
PASSEmpty Element.querySelector: Invalid combinator: div % address, p
PASSEmpty Element.querySelectorAll: Invalid combinator: div % address, p
PASSEmpty Element.querySelector: Invalid combinator: div ++ address, p
PASSEmpty Element.querySelectorAll: Invalid combinator: div ++ address, p
PASSEmpty Element.querySelector: Invalid combinator: div ~~ address, p
PASSEmpty Element.querySelectorAll: Invalid combinator: div ~~ address, p
PASSEmpty Element.querySelector: Invalid [att=value] selector: [*=test]
PASSEmpty Element.querySelectorAll: Invalid [att=value] selector: [*=test]
PASSEmpty Element.querySelector: Invalid [att=value] selector: [*|*=test]
PASSEmpty Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]
PASSEmpty Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]
PASSEmpty Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
PASSEmpty Element.querySelector: Unknown pseudo-class: div:example
PASSEmpty Element.querySelectorAll: Unknown pseudo-class: div:example
PASSEmpty Element.querySelector: Unknown pseudo-class: :example
PASSEmpty Element.querySelectorAll: Unknown pseudo-class: :example
PASSEmpty Element.querySelector: Unknown pseudo-class: div:linkexample
PASSEmpty Element.querySelectorAll: Unknown pseudo-class: div:linkexample
PASSEmpty Element.querySelector: Unknown pseudo-element: div::example
PASSEmpty Element.querySelectorAll: Unknown pseudo-element: div::example
PASSEmpty Element.querySelector: Unknown pseudo-element: ::example
PASSEmpty Element.querySelectorAll: Unknown pseudo-element: ::example
PASSEmpty Element.querySelector: Invalid pseudo-element: :::before
PASSEmpty Element.querySelectorAll: Invalid pseudo-element: :::before
PASSEmpty Element.querySelector: Invalid pseudo-element: :: before
PASSEmpty Element.querySelectorAll: Invalid pseudo-element: :: before
PASSEmpty Element.querySelector: Undeclared namespace: ns|div
PASSEmpty Element.querySelectorAll: Undeclared namespace: ns|div
PASSEmpty Element.querySelector: Undeclared namespace: :not(ns|div)
PASSEmpty Element.querySelectorAll: Undeclared namespace: :not(ns|div)
PASSEmpty Element.querySelector: Invalid namespace: ^|div
PASSEmpty Element.querySelectorAll: Invalid namespace: ^|div
PASSEmpty Element.querySelector: Invalid namespace: $|div
PASSEmpty Element.querySelectorAll: Invalid namespace: $|div
PASSEmpty Element.querySelector: Relative selector: >*
PASSEmpty Element.querySelectorAll: Relative selector: >*
PASSDocument.querySelectorAll: Type selector, matching html element: html
PASSDocument.querySelector: Type selector, matching html element: html
PASSDocument.querySelectorAll: Type selector, matching body element: body
PASSDocument.querySelector: Type selector, matching body element: body
PASSDocument.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
PASSDocument.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
PASSDocument.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
PASSDocument.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
PASSDocument.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
PASSDocument.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
PASSDocument.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
PASSDocument.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
PASSDocument.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
PASSDocument.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
PASSDocument.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
PASSDocument.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
PASSDocument.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
PASSDocument.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
PASSDocument.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
PASSDocument.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
PASSDocument.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
PASSDocument.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
PASSDocument.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
PASSDocument.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
PASSDocument.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
PASSDocument.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
PASSDocument.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
PASSDocument.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
PASSDocument.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
PASSDocument.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
PASSDocument.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
PASSDocument.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
PASSDocument.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
PASSDocument.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
PASSDocument.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
PASSDocument.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
PASSDocument.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
PASSDocument.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
PASSDocument.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
PASSDocument.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
PASSDocument.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
PASSDocument.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
PASSDocument.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
PASSDocument.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
PASSDocument.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSDocument.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSDocument.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSDocument.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSDocument.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
PASSDocument.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
PASSDocument.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
PASSDocument.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
PASSDocument.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
PASSDocument.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
PASSDocument.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
PASSDocument.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
PASSDocument.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSDocument.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSDocument.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSDocument.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
PASSDocument.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
PASSDocument.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
PASSDocument.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
PASSDocument.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
PASSDocument.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
PASSDocument.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
PASSDocument.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
PASSDocument.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
PASSDocument.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
PASSDocument.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
PASSDocument.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
PASSDocument.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASSDocument.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASSDocument.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASSDocument.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASSDocument.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASSDocument.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASSDocument.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASSDocument.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASSDocument.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASSDocument.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASSDocument.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
PASSDocument.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
PASSDocument.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
PASSDocument.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
PASSDocument.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASSDocument.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASSDocument.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASSDocument.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASSDocument.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASSDocument.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASSDocument.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASSDocument.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASSDocument.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASSDocument.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASSDocument.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
PASSDocument.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
PASSDocument.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
PASSDocument.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
PASSDocument.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
PASSDocument.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
PASSDocument.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
PASSDocument.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
PASSDocument.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
PASSDocument.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
PASSDocument.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASSDocument.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASSDocument.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASSDocument.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASSDocument.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASSDocument.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASSDocument.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASSDocument.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASSDocument.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASSDocument.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASSDocument.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
PASSDocument.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
PASSDocument.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
PASSDocument.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
PASSDocument.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
PASSDocument.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
PASSDocument.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
PASSDocument.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
PASSDocument.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
PASSDocument.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
PASSDocument.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
PASSDocument.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
PASSDocument.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
PASSDocument.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
PASSDocument.querySelectorAll: :root pseudo-class selector, matching document root element: :root
PASSDocument.querySelector: :root pseudo-class selector, matching document root element: :root
PASSDocument.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
PASSDocument.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
PASSDocument.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
PASSDocument.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
PASSDocument.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
PASSDocument.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
PASSDocument.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
PASSDocument.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
PASSDocument.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
PASSDocument.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
PASSDocument.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
PASSDocument.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
PASSDocument.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
PASSDocument.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
PASSDocument.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
PASSDocument.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
PASSDocument.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
PASSDocument.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
PASSDocument.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
PASSDocument.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
PASSDocument.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSDocument.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSDocument.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
PASSDocument.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
PASSDocument.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
PASSDocument.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
PASSDocument.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSDocument.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSDocument.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
PASSDocument.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
PASSDocument.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
PASSDocument.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
PASSDocument.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
PASSDocument.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
PASSDocument.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
PASSDocument.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
PASSDocument.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
PASSDocument.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
PASSDocument.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
PASSDocument.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
PASSDocument.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
PASSDocument.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
PASSDocument.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
PASSDocument.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
PASSDocument.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
PASSDocument.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
PASSDocument.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
PASSDocument.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
PASSDocument.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
PASSDocument.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
PASSDocument.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
PASSDocument.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
PASSDocument.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
PASSDocument.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
PASSDocument.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
PASSDocument.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
PASSDocument.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
PASSDocument.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
PASSDocument.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
PASSDocument.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
PASSDocument.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
PASSDocument.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
PASSDocument.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
PASSDocument.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
PASSDocument.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
PASSDocument.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
PASSDocument.querySelectorAll: :link and :visited pseudo-class selectors, matching no elements: #head :link, #head :visited
PASSDocument.querySelector: :link and :visited pseudo-class selectors, matching no elements: #head :link, #head :visited
FAILDocument.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :targetassert_equals: The method should return the expected number of matches. expected 1 but got 0
FAILDocument.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :targetassert_not_equals: The method should return a match. got disallowed value null
PASSDocument.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
PASSDocument.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
PASSDocument.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
PASSDocument.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
PASSDocument.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
PASSDocument.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
PASSDocument.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
PASSDocument.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
PASSDocument.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
PASSDocument.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
PASSDocument.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
PASSDocument.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
PASSDocument.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
PASSDocument.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
PASSDocument.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
PASSDocument.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
PASSDocument.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
PASSDocument.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
PASSDocument.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
PASSDocument.querySelector: :not pseudo-class selector, matching : #not>:not(div)
PASSDocument.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
PASSDocument.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
PASSDocument.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
PASSDocument.querySelector: :not pseudo-class selector, matching nothing: :not(*)
PASSDocument.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
PASSDocument.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
PASSDocument.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
PASSDocument.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
PASSDocument.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
PASSDocument.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
PASSDocument.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
PASSDocument.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
PASSDocument.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
PASSDocument.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
PASSDocument.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
PASSDocument.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
PASSDocument.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
PASSDocument.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
PASSDocument.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
PASSDocument.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
PASSDocument.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
PASSDocument.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
PASSDocument.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
PASSDocument.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
PASSDocument.querySelectorAll: Class selector, matching element with specified class: .class-p
PASSDocument.querySelector: Class selector, matching element with specified class: .class-p
PASSDocument.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
PASSDocument.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
PASSDocument.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
PASSDocument.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
PASSDocument.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
PASSDocument.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
PASSDocument.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
PASSDocument.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
PASSDocument.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
PASSDocument.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
PASSDocument.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
PASSDocument.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
PASSDocument.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
PASSDocument.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
PASSDocument.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
PASSDocument.querySelector: ID selector, matching element with specified id: #id #id-div1
PASSDocument.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
PASSDocument.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
PASSDocument.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
PASSDocument.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
PASSDocument.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
PASSDocument.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
PASSDocument.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
PASSDocument.querySelector: ID selector, not matching non-existent descendant: #id #none
PASSDocument.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
PASSDocument.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
PASSDocument.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
PASSDocument.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
PASSDocument.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
PASSDocument.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
PASSDocument.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
PASSDocument.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
PASSDocument.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
PASSDocument.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
PASSDocument.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
PASSDocument.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
PASSDocument.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
PASSDocument.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
PASSDocument.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
PASSDocument.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
PASSDocument.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
PASSDocument.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
PASSDocument.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
PASSDocument.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
PASSDocument.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
PASSDocument.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
PASSDocument.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
PASSDocument.querySelector: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
PASSDocument.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
PASSDocument.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
PASSDocument.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
PASSDocument.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
PASSDocument.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
PASSDocument.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
PASSDocument.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
PASSDocument.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
PASSDocument.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
PASSDocument.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
PASSDocument.querySelectorAll: Descendant combinator, whitespace characters: #descendant #descendant-div2
PASSDocument.querySelector: Descendant combinator, whitespace characters: #descendant #descendant-div2
PASSDocument.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
PASSDocument.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
PASSDocument.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
PASSDocument.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
PASSDocument.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
PASSDocument.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
PASSDocument.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
PASSDocument.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
PASSDocument.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
PASSDocument.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
PASSDocument.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
PASSDocument.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
PASSDocument.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
PASSDocument.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
PASSDocument.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
PASSDocument.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
PASSDocument.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 > #child-div2
PASSDocument.querySelector: Child combinator, surrounded by whitespace: #child-div1 > #child-div2
PASSDocument.querySelectorAll: Child combinator, whitespace after: #child-div1> #child-div2
PASSDocument.querySelector: Child combinator, whitespace after: #child-div1> #child-div2
PASSDocument.querySelectorAll: Child combinator, whitespace before: #child-div1 >#child-div2
PASSDocument.querySelector: Child combinator, whitespace before: #child-div1 >#child-div2
PASSDocument.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
PASSDocument.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
PASSDocument.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
PASSDocument.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
PASSDocument.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
PASSDocument.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
PASSDocument.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
PASSDocument.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
PASSDocument.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
PASSDocument.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
PASSDocument.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
PASSDocument.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
PASSDocument.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
PASSDocument.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
PASSDocument.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
PASSDocument.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
PASSDocument.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3
PASSDocument.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3
PASSDocument.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3
PASSDocument.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3
PASSDocument.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3
PASSDocument.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3
PASSDocument.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
PASSDocument.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
PASSDocument.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
PASSDocument.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
PASSDocument.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
PASSDocument.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
PASSDocument.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
PASSDocument.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
PASSDocument.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
PASSDocument.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
PASSDocument.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
PASSDocument.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
PASSDocument.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
PASSDocument.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
PASSDocument.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
PASSDocument.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
PASSDocument.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 ~ #sibling-p3
PASSDocument.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 ~ #sibling-p3
PASSDocument.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ #sibling-p3
PASSDocument.querySelector: General sibling combinator, whitespace after: #sibling-p2~ #sibling-p3
PASSDocument.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 ~#sibling-p3
PASSDocument.querySelector: General sibling combinator, whitespace before: #sibling-p2 ~#sibling-p3
PASSDocument.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
PASSDocument.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
PASSDocument.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strong
PASSDocument.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strong
PASSDocument.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, #group strong
PASSDocument.querySelector: Syntax, group of selectors separator, whitespace after: #group em, #group strong
PASSDocument.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em ,#group strong
PASSDocument.querySelector: Syntax, group of selectors separator, whitespace before: #group em ,#group strong
PASSDocument.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
PASSDocument.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
PASSDocument.querySelectorAll: Slotted selector: ::slotted(foo)
PASSDocument.querySelector: Slotted selector: ::slotted(foo)
PASSDocument.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
PASSDocument.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
PASSDetached Element.querySelectorAll: Type selector, matching html element: html
PASSDetached Element.querySelector: Type selector, matching html element: html
PASSDetached Element.querySelectorAll: Type selector, matching body element: body
PASSDetached Element.querySelector: Type selector, matching body element: body
PASSDetached Element.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
PASSDetached Element.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
PASSDetached Element.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
PASSDetached Element.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
PASSDetached Element.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
PASSDetached Element.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
PASSDetached Element.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
PASSDetached Element.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
PASSDetached Element.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
PASSDetached Element.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
PASSDetached Element.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
PASSDetached Element.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
PASSDetached Element.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
PASSDetached Element.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
PASSDetached Element.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
PASSDetached Element.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
PASSDetached Element.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
PASSDetached Element.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
PASSDetached Element.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
PASSDetached Element.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
PASSDetached Element.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
PASSDetached Element.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
PASSDetached Element.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
PASSDetached Element.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
PASSDetached Element.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
PASSDetached Element.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
PASSDetached Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
PASSDetached Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
PASSDetached Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
PASSDetached Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
PASSDetached Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
PASSDetached Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
PASSDetached Element.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
PASSDetached Element.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
PASSDetached Element.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
PASSDetached Element.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
PASSDetached Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
PASSDetached Element.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
PASSDetached Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
PASSDetached Element.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
PASSDetached Element.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSDetached Element.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSDetached Element.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSDetached Element.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSDetached Element.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
PASSDetached Element.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
PASSDetached Element.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
PASSDetached Element.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
PASSDetached Element.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
PASSDetached Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
PASSDetached Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
PASSDetached Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
PASSDetached Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSDetached Element.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSDetached Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSDetached Element.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
PASSDetached Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
PASSDetached Element.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
PASSDetached Element.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
PASSDetached Element.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
PASSDetached Element.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
PASSDetached Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
PASSDetached Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
PASSDetached Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
PASSDetached Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
PASSDetached Element.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
PASSDetached Element.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
PASSDetached Element.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASSDetached Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASSDetached Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASSDetached Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASSDetached Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASSDetached Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASSDetached Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASSDetached Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASSDetached Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASSDetached Element.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASSDetached Element.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
PASSDetached Element.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
PASSDetached Element.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
PASSDetached Element.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
PASSDetached Element.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASSDetached Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASSDetached Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASSDetached Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASSDetached Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASSDetached Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASSDetached Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASSDetached Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASSDetached Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASSDetached Element.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASSDetached Element.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
PASSDetached Element.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
PASSDetached Element.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
PASSDetached Element.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
PASSDetached Element.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
PASSDetached Element.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
PASSDetached Element.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
PASSDetached Element.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
PASSDetached Element.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
PASSDetached Element.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
PASSDetached Element.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASSDetached Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASSDetached Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASSDetached Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASSDetached Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASSDetached Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASSDetached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASSDetached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASSDetached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASSDetached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASSDetached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
PASSDetached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
PASSDetached Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
PASSDetached Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
PASSDetached Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
PASSDetached Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
PASSDetached Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
PASSDetached Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
PASSDetached Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
PASSDetached Element.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
PASSDetached Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
PASSDetached Element.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
PASSDetached Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
PASSDetached Element.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
PASSDetached Element.querySelectorAll: :root pseudo-class selector, not matching document root element: :root
PASSDetached Element.querySelector: :root pseudo-class selector, not matching document root element: :root
PASSDetached Element.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
PASSDetached Element.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
PASSDetached Element.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
PASSDetached Element.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
PASSDetached Element.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
PASSDetached Element.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
PASSDetached Element.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
PASSDetached Element.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
PASSDetached Element.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
PASSDetached Element.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
PASSDetached Element.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
PASSDetached Element.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
PASSDetached Element.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
PASSDetached Element.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
PASSDetached Element.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
PASSDetached Element.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
PASSDetached Element.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
PASSDetached Element.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
PASSDetached Element.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
PASSDetached Element.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
PASSDetached Element.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSDetached Element.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSDetached Element.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
PASSDetached Element.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
PASSDetached Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
PASSDetached Element.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
PASSDetached Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSDetached Element.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSDetached Element.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
PASSDetached Element.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
PASSDetached Element.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
PASSDetached Element.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
PASSDetached Element.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
PASSDetached Element.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
PASSDetached Element.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
PASSDetached Element.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
PASSDetached Element.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
PASSDetached Element.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
PASSDetached Element.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
PASSDetached Element.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
PASSDetached Element.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
PASSDetached Element.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
PASSDetached Element.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
PASSDetached Element.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
PASSDetached Element.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
PASSDetached Element.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
PASSDetached Element.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
PASSDetached Element.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
PASSDetached Element.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
PASSDetached Element.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
PASSDetached Element.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
PASSDetached Element.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
PASSDetached Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
PASSDetached Element.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
PASSDetached Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
PASSDetached Element.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
PASSDetached Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
PASSDetached Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
PASSDetached Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
PASSDetached Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
PASSDetached Element.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
PASSDetached Element.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
PASSDetached Element.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
PASSDetached Element.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
PASSDetached Element.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
PASSDetached Element.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
PASSDetached Element.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
PASSDetached Element.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
PASSDetached Element.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
PASSDetached Element.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
PASSDetached Element.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
PASSDetached Element.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
PASSDetached Element.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
PASSDetached Element.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
PASSDetached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
PASSDetached Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
PASSDetached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
PASSDetached Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
PASSDetached Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
PASSDetached Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
PASSDetached Element.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
PASSDetached Element.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
PASSDetached Element.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
PASSDetached Element.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
PASSDetached Element.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
PASSDetached Element.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
PASSDetached Element.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
PASSDetached Element.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
PASSDetached Element.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
PASSDetached Element.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
PASSDetached Element.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
PASSDetached Element.querySelector: :not pseudo-class selector, matching : #not>:not(div)
PASSDetached Element.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
PASSDetached Element.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
PASSDetached Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
PASSDetached Element.querySelector: :not pseudo-class selector, matching nothing: :not(*)
PASSDetached Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
PASSDetached Element.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
PASSDetached Element.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
PASSDetached Element.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
PASSDetached Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
PASSDetached Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
PASSDetached Element.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
PASSDetached Element.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
PASSDetached Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
PASSDetached Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
PASSDetached Element.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
PASSDetached Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
PASSDetached Element.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
PASSDetached Element.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
PASSDetached Element.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
PASSDetached Element.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
PASSDetached Element.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
PASSDetached Element.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
PASSDetached Element.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
PASSDetached Element.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
PASSDetached Element.querySelectorAll: Class selector, matching element with specified class: .class-p
PASSDetached Element.querySelector: Class selector, matching element with specified class: .class-p
PASSDetached Element.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
PASSDetached Element.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
PASSDetached Element.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
PASSDetached Element.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
PASSDetached Element.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
PASSDetached Element.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
PASSDetached Element.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
PASSDetached Element.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
PASSDetached Element.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
PASSDetached Element.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
PASSDetached Element.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
PASSDetached Element.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
PASSDetached Element.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
PASSDetached Element.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
PASSDetached Element.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
PASSDetached Element.querySelector: ID selector, matching element with specified id: #id #id-div1
PASSDetached Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
PASSDetached Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
PASSDetached Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
PASSDetached Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
PASSDetached Element.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
PASSDetached Element.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
PASSDetached Element.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
PASSDetached Element.querySelector: ID selector, not matching non-existent descendant: #id #none
PASSDetached Element.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
PASSDetached Element.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
PASSDetached Element.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
PASSDetached Element.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
PASSDetached Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
PASSDetached Element.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
PASSDetached Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
PASSDetached Element.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
PASSDetached Element.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
PASSDetached Element.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
PASSDetached Element.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
PASSDetached Element.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
PASSDetached Element.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
PASSDetached Element.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
PASSDetached Element.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
PASSDetached Element.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
PASSDetached Element.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
PASSDetached Element.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
PASSDetached Element.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
PASSDetached Element.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
PASSDetached Element.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
PASSDetached Element.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
PASSDetached Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
PASSDetached Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
PASSDetached Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
PASSDetached Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
PASSDetached Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
PASSDetached Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
PASSDetached Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
PASSDetached Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
PASSDetached Element.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
PASSDetached Element.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
PASSDetached Element.querySelectorAll: Descendant combinator, whitespace characters: #descendant #descendant-div2
PASSDetached Element.querySelector: Descendant combinator, whitespace characters: #descendant #descendant-div2
PASSDetached Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
PASSDetached Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
PASSDetached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
PASSDetached Element.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
PASSDetached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
PASSDetached Element.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
PASSDetached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
PASSDetached Element.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
PASSDetached Element.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
PASSDetached Element.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
PASSDetached Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
PASSDetached Element.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
PASSDetached Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
PASSDetached Element.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
PASSDetached Element.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
PASSDetached Element.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
PASSDetached Element.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 > #child-div2
PASSDetached Element.querySelector: Child combinator, surrounded by whitespace: #child-div1 > #child-div2
PASSDetached Element.querySelectorAll: Child combinator, whitespace after: #child-div1> #child-div2
PASSDetached Element.querySelector: Child combinator, whitespace after: #child-div1> #child-div2
PASSDetached Element.querySelectorAll: Child combinator, whitespace before: #child-div1 >#child-div2
PASSDetached Element.querySelector: Child combinator, whitespace before: #child-div1 >#child-div2
PASSDetached Element.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
PASSDetached Element.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
PASSDetached Element.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
PASSDetached Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
PASSDetached Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
PASSDetached Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
PASSDetached Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
PASSDetached Element.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
PASSDetached Element.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3
PASSDetached Element.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3
PASSDetached Element.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3
PASSDetached Element.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3
PASSDetached Element.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
PASSDetached Element.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
PASSDetached Element.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
PASSDetached Element.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
PASSDetached Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
PASSDetached Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
PASSDetached Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
PASSDetached Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
PASSDetached Element.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
PASSDetached Element.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
PASSDetached Element.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
PASSDetached Element.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
PASSDetached Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
PASSDetached Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
PASSDetached Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
PASSDetached Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
PASSDetached Element.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 ~ #sibling-p3
PASSDetached Element.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 ~ #sibling-p3
PASSDetached Element.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ #sibling-p3
PASSDetached Element.querySelector: General sibling combinator, whitespace after: #sibling-p2~ #sibling-p3
PASSDetached Element.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 ~#sibling-p3
PASSDetached Element.querySelector: General sibling combinator, whitespace before: #sibling-p2 ~#sibling-p3
PASSDetached Element.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
PASSDetached Element.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
PASSDetached Element.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strong
PASSDetached Element.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strong
PASSDetached Element.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, #group strong
PASSDetached Element.querySelector: Syntax, group of selectors separator, whitespace after: #group em, #group strong
PASSDetached Element.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em ,#group strong
PASSDetached Element.querySelector: Syntax, group of selectors separator, whitespace before: #group em ,#group strong
PASSDetached Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
PASSDetached Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
PASSDetached Element.querySelectorAll: Slotted selector: ::slotted(foo)
PASSDetached Element.querySelector: Slotted selector: ::slotted(foo)
PASSDetached Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
PASSDetached Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
PASSFragment.querySelectorAll: Type selector, matching html element: html
PASSFragment.querySelector: Type selector, matching html element: html
PASSFragment.querySelectorAll: Type selector, matching body element: body
PASSFragment.querySelector: Type selector, matching body element: body
PASSFragment.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
PASSFragment.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
PASSFragment.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
PASSFragment.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
PASSFragment.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
PASSFragment.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
PASSFragment.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
PASSFragment.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
PASSFragment.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
PASSFragment.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
PASSFragment.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
PASSFragment.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
PASSFragment.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
PASSFragment.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
PASSFragment.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
PASSFragment.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
PASSFragment.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
PASSFragment.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
PASSFragment.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
PASSFragment.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
PASSFragment.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
PASSFragment.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
PASSFragment.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
PASSFragment.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
PASSFragment.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
PASSFragment.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
PASSFragment.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
PASSFragment.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
PASSFragment.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
PASSFragment.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
PASSFragment.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
PASSFragment.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
PASSFragment.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
PASSFragment.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
PASSFragment.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
PASSFragment.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
PASSFragment.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
PASSFragment.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
PASSFragment.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
PASSFragment.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
PASSFragment.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSFragment.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSFragment.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSFragment.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSFragment.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
PASSFragment.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
PASSFragment.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
PASSFragment.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
PASSFragment.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
PASSFragment.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
PASSFragment.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
PASSFragment.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
PASSFragment.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSFragment.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSFragment.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSFragment.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
PASSFragment.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
PASSFragment.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
PASSFragment.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
PASSFragment.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
PASSFragment.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
PASSFragment.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
PASSFragment.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
PASSFragment.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
PASSFragment.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
PASSFragment.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
PASSFragment.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
PASSFragment.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASSFragment.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASSFragment.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASSFragment.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASSFragment.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASSFragment.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASSFragment.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASSFragment.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASSFragment.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASSFragment.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASSFragment.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
PASSFragment.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
PASSFragment.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
PASSFragment.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
PASSFragment.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASSFragment.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASSFragment.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASSFragment.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASSFragment.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASSFragment.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASSFragment.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASSFragment.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASSFragment.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASSFragment.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASSFragment.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
PASSFragment.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
PASSFragment.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
PASSFragment.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
PASSFragment.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
PASSFragment.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
PASSFragment.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
PASSFragment.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
PASSFragment.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
PASSFragment.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
PASSFragment.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASSFragment.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASSFragment.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASSFragment.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASSFragment.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASSFragment.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASSFragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASSFragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASSFragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASSFragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASSFragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
PASSFragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
PASSFragment.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
PASSFragment.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
PASSFragment.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
PASSFragment.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
PASSFragment.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
PASSFragment.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
PASSFragment.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
PASSFragment.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
PASSFragment.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
PASSFragment.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
PASSFragment.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
PASSFragment.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
PASSFragment.querySelectorAll: :root pseudo-class selector, not matching document root element: :root
PASSFragment.querySelector: :root pseudo-class selector, not matching document root element: :root
PASSFragment.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
PASSFragment.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
PASSFragment.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
PASSFragment.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
PASSFragment.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
PASSFragment.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
PASSFragment.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
PASSFragment.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
PASSFragment.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
PASSFragment.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
PASSFragment.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
PASSFragment.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
PASSFragment.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
PASSFragment.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
PASSFragment.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
PASSFragment.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
PASSFragment.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
PASSFragment.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
PASSFragment.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
PASSFragment.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
PASSFragment.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSFragment.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSFragment.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
PASSFragment.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
PASSFragment.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
PASSFragment.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
PASSFragment.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSFragment.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSFragment.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
PASSFragment.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
PASSFragment.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
PASSFragment.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
PASSFragment.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
PASSFragment.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
PASSFragment.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
PASSFragment.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
PASSFragment.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
PASSFragment.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
PASSFragment.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
PASSFragment.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
PASSFragment.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
PASSFragment.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
PASSFragment.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
PASSFragment.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
PASSFragment.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
PASSFragment.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
PASSFragment.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
PASSFragment.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
PASSFragment.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
PASSFragment.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
PASSFragment.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
PASSFragment.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
PASSFragment.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
PASSFragment.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
PASSFragment.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
PASSFragment.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
PASSFragment.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
PASSFragment.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
PASSFragment.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
PASSFragment.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
PASSFragment.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
PASSFragment.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
PASSFragment.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
PASSFragment.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
PASSFragment.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
PASSFragment.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
PASSFragment.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
PASSFragment.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
PASSFragment.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
PASSFragment.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
PASSFragment.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
PASSFragment.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
PASSFragment.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
PASSFragment.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
PASSFragment.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
PASSFragment.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
PASSFragment.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
PASSFragment.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
PASSFragment.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
PASSFragment.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
PASSFragment.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
PASSFragment.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
PASSFragment.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
PASSFragment.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
PASSFragment.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
PASSFragment.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
PASSFragment.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
PASSFragment.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
PASSFragment.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
PASSFragment.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
PASSFragment.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
PASSFragment.querySelector: :not pseudo-class selector, matching : #not>:not(div)
PASSFragment.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
PASSFragment.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
PASSFragment.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
PASSFragment.querySelector: :not pseudo-class selector, matching nothing: :not(*)
PASSFragment.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
PASSFragment.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
PASSFragment.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
PASSFragment.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
PASSFragment.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
PASSFragment.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
PASSFragment.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
PASSFragment.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
PASSFragment.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
PASSFragment.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
PASSFragment.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
PASSFragment.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
PASSFragment.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
PASSFragment.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
PASSFragment.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
PASSFragment.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
PASSFragment.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
PASSFragment.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
PASSFragment.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
PASSFragment.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
PASSFragment.querySelectorAll: Class selector, matching element with specified class: .class-p
PASSFragment.querySelector: Class selector, matching element with specified class: .class-p
PASSFragment.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
PASSFragment.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
PASSFragment.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
PASSFragment.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
PASSFragment.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
PASSFragment.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
PASSFragment.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
PASSFragment.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
PASSFragment.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
PASSFragment.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
PASSFragment.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
PASSFragment.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
PASSFragment.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
PASSFragment.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
PASSFragment.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
PASSFragment.querySelector: ID selector, matching element with specified id: #id #id-div1
PASSFragment.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
PASSFragment.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
PASSFragment.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
PASSFragment.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
PASSFragment.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
PASSFragment.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
PASSFragment.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
PASSFragment.querySelector: ID selector, not matching non-existent descendant: #id #none
PASSFragment.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
PASSFragment.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
PASSFragment.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
PASSFragment.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
PASSFragment.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
PASSFragment.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
PASSFragment.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
PASSFragment.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
PASSFragment.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
PASSFragment.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
PASSFragment.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
PASSFragment.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
PASSFragment.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
PASSFragment.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
PASSFragment.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
PASSFragment.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
PASSFragment.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
PASSFragment.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
PASSFragment.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
PASSFragment.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
PASSFragment.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
PASSFragment.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
PASSFragment.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
PASSFragment.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
PASSFragment.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
PASSFragment.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
PASSFragment.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
PASSFragment.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
PASSFragment.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
PASSFragment.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
PASSFragment.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
PASSFragment.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
PASSFragment.querySelectorAll: Descendant combinator, whitespace characters: #descendant #descendant-div2
PASSFragment.querySelector: Descendant combinator, whitespace characters: #descendant #descendant-div2
PASSFragment.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
PASSFragment.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
PASSFragment.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
PASSFragment.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
PASSFragment.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
PASSFragment.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
PASSFragment.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
PASSFragment.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
PASSFragment.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
PASSFragment.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
PASSFragment.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
PASSFragment.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
PASSFragment.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
PASSFragment.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
PASSFragment.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
PASSFragment.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
PASSFragment.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 > #child-div2
PASSFragment.querySelector: Child combinator, surrounded by whitespace: #child-div1 > #child-div2
PASSFragment.querySelectorAll: Child combinator, whitespace after: #child-div1> #child-div2
PASSFragment.querySelector: Child combinator, whitespace after: #child-div1> #child-div2
PASSFragment.querySelectorAll: Child combinator, whitespace before: #child-div1 >#child-div2
PASSFragment.querySelector: Child combinator, whitespace before: #child-div1 >#child-div2
PASSFragment.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
PASSFragment.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
PASSFragment.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
PASSFragment.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
PASSFragment.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
PASSFragment.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
PASSFragment.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
PASSFragment.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
PASSFragment.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
PASSFragment.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
PASSFragment.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
PASSFragment.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
PASSFragment.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
PASSFragment.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
PASSFragment.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
PASSFragment.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
PASSFragment.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3
PASSFragment.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3
PASSFragment.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3
PASSFragment.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3
PASSFragment.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3
PASSFragment.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3
PASSFragment.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
PASSFragment.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
PASSFragment.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
PASSFragment.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
PASSFragment.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
PASSFragment.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
PASSFragment.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
PASSFragment.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
PASSFragment.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
PASSFragment.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
PASSFragment.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
PASSFragment.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
PASSFragment.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
PASSFragment.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
PASSFragment.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
PASSFragment.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
PASSFragment.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 ~ #sibling-p3
PASSFragment.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 ~ #sibling-p3
PASSFragment.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ #sibling-p3
PASSFragment.querySelector: General sibling combinator, whitespace after: #sibling-p2~ #sibling-p3
PASSFragment.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 ~#sibling-p3
PASSFragment.querySelector: General sibling combinator, whitespace before: #sibling-p2 ~#sibling-p3
PASSFragment.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
PASSFragment.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
PASSFragment.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strong
PASSFragment.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strong
PASSFragment.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, #group strong
PASSFragment.querySelector: Syntax, group of selectors separator, whitespace after: #group em, #group strong
PASSFragment.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em ,#group strong
PASSFragment.querySelector: Syntax, group of selectors separator, whitespace before: #group em ,#group strong
PASSFragment.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
PASSFragment.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
PASSFragment.querySelectorAll: Slotted selector: ::slotted(foo)
PASSFragment.querySelector: Slotted selector: ::slotted(foo)
PASSFragment.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
PASSFragment.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
PASSIn-document Element.querySelectorAll: Type selector, matching html element: html
PASSIn-document Element.querySelector: Type selector, matching html element: html
PASSIn-document Element.querySelectorAll: Type selector, matching body element: body
PASSIn-document Element.querySelector: Type selector, matching body element: body
PASSIn-document Element.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
PASSIn-document Element.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
PASSIn-document Element.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
PASSIn-document Element.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
PASSIn-document Element.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
PASSIn-document Element.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
PASSIn-document Element.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
PASSIn-document Element.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
PASSIn-document Element.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
PASSIn-document Element.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
PASSIn-document Element.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
PASSIn-document Element.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
PASSIn-document Element.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
PASSIn-document Element.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
PASSIn-document Element.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
PASSIn-document Element.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
PASSIn-document Element.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
PASSIn-document Element.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
PASSIn-document Element.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
PASSIn-document Element.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
PASSIn-document Element.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
PASSIn-document Element.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
PASSIn-document Element.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
PASSIn-document Element.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
PASSIn-document Element.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
PASSIn-document Element.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
PASSIn-document Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
PASSIn-document Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
PASSIn-document Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
PASSIn-document Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
PASSIn-document Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
PASSIn-document Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
PASSIn-document Element.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
PASSIn-document Element.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
PASSIn-document Element.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
PASSIn-document Element.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
PASSIn-document Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
PASSIn-document Element.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
PASSIn-document Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
PASSIn-document Element.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
PASSIn-document Element.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSIn-document Element.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSIn-document Element.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSIn-document Element.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSIn-document Element.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
PASSIn-document Element.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
PASSIn-document Element.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
PASSIn-document Element.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
PASSIn-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
PASSIn-document Element.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
PASSIn-document Element.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
PASSIn-document Element.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
PASSIn-document Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
PASSIn-document Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
PASSIn-document Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
PASSIn-document Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
PASSIn-document Element.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
PASSIn-document Element.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
PASSIn-document Element.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASSIn-document Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASSIn-document Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASSIn-document Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASSIn-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASSIn-document Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASSIn-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASSIn-document Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASSIn-document Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASSIn-document Element.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASSIn-document Element.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
PASSIn-document Element.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
PASSIn-document Element.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
PASSIn-document Element.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
PASSIn-document Element.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASSIn-document Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASSIn-document Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASSIn-document Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASSIn-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASSIn-document Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASSIn-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASSIn-document Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASSIn-document Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASSIn-document Element.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASSIn-document Element.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
PASSIn-document Element.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
PASSIn-document Element.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
PASSIn-document Element.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
PASSIn-document Element.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
PASSIn-document Element.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
PASSIn-document Element.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
PASSIn-document Element.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
PASSIn-document Element.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
PASSIn-document Element.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
PASSIn-document Element.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASSIn-document Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASSIn-document Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASSIn-document Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASSIn-document Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASSIn-document Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASSIn-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASSIn-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASSIn-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASSIn-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASSIn-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
PASSIn-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
PASSIn-document Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
PASSIn-document Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
PASSIn-document Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
PASSIn-document Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
PASSIn-document Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
PASSIn-document Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
PASSIn-document Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
PASSIn-document Element.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
PASSIn-document Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
PASSIn-document Element.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
PASSIn-document Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
PASSIn-document Element.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
PASSIn-document Element.querySelectorAll: :root pseudo-class selector, not matching document root element: :root
PASSIn-document Element.querySelector: :root pseudo-class selector, not matching document root element: :root
PASSIn-document Element.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
PASSIn-document Element.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
PASSIn-document Element.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
PASSIn-document Element.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
PASSIn-document Element.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
PASSIn-document Element.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
PASSIn-document Element.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
PASSIn-document Element.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
PASSIn-document Element.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
PASSIn-document Element.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
PASSIn-document Element.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
PASSIn-document Element.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
PASSIn-document Element.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
PASSIn-document Element.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
PASSIn-document Element.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
PASSIn-document Element.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
PASSIn-document Element.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
PASSIn-document Element.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
PASSIn-document Element.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
PASSIn-document Element.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
PASSIn-document Element.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSIn-document Element.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSIn-document Element.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
PASSIn-document Element.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
PASSIn-document Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
PASSIn-document Element.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
PASSIn-document Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSIn-document Element.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSIn-document Element.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
PASSIn-document Element.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
PASSIn-document Element.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
PASSIn-document Element.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
PASSIn-document Element.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
PASSIn-document Element.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
PASSIn-document Element.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
PASSIn-document Element.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
PASSIn-document Element.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
PASSIn-document Element.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
PASSIn-document Element.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
PASSIn-document Element.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
PASSIn-document Element.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
PASSIn-document Element.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
PASSIn-document Element.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
PASSIn-document Element.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
PASSIn-document Element.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
PASSIn-document Element.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
PASSIn-document Element.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
PASSIn-document Element.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
PASSIn-document Element.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
PASSIn-document Element.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
PASSIn-document Element.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
PASSIn-document Element.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
PASSIn-document Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
PASSIn-document Element.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
PASSIn-document Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
PASSIn-document Element.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
PASSIn-document Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
PASSIn-document Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
PASSIn-document Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
PASSIn-document Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
PASSIn-document Element.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
PASSIn-document Element.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
PASSIn-document Element.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
PASSIn-document Element.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
PASSIn-document Element.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
PASSIn-document Element.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
PASSIn-document Element.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
PASSIn-document Element.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
PASSIn-document Element.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
PASSIn-document Element.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
FAILIn-document Element.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :targetassert_equals: The method should return the expected number of matches. expected 1 but got 0
FAILIn-document Element.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :targetassert_not_equals: The method should return a match. got disallowed value null
PASSIn-document Element.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
PASSIn-document Element.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
PASSIn-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
PASSIn-document Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
PASSIn-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
PASSIn-document Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
PASSIn-document Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
PASSIn-document Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
PASSIn-document Element.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
PASSIn-document Element.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
PASSIn-document Element.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
PASSIn-document Element.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
PASSIn-document Element.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
PASSIn-document Element.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
PASSIn-document Element.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
PASSIn-document Element.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
PASSIn-document Element.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
PASSIn-document Element.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
PASSIn-document Element.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
PASSIn-document Element.querySelector: :not pseudo-class selector, matching : #not>:not(div)
PASSIn-document Element.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
PASSIn-document Element.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
PASSIn-document Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
PASSIn-document Element.querySelector: :not pseudo-class selector, matching nothing: :not(*)
PASSIn-document Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
PASSIn-document Element.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
PASSIn-document Element.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
PASSIn-document Element.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
PASSIn-document Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
PASSIn-document Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
PASSIn-document Element.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
PASSIn-document Element.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
PASSIn-document Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
PASSIn-document Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
PASSIn-document Element.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
PASSIn-document Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
PASSIn-document Element.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
PASSIn-document Element.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
PASSIn-document Element.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
PASSIn-document Element.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
PASSIn-document Element.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
PASSIn-document Element.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
PASSIn-document Element.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
PASSIn-document Element.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
PASSIn-document Element.querySelectorAll: Class selector, matching element with specified class: .class-p
PASSIn-document Element.querySelector: Class selector, matching element with specified class: .class-p
PASSIn-document Element.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
PASSIn-document Element.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
PASSIn-document Element.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
PASSIn-document Element.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
PASSIn-document Element.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
PASSIn-document Element.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
PASSIn-document Element.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
PASSIn-document Element.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
PASSIn-document Element.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
PASSIn-document Element.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
PASSIn-document Element.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
PASSIn-document Element.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
PASSIn-document Element.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
PASSIn-document Element.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
PASSIn-document Element.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
PASSIn-document Element.querySelector: ID selector, matching element with specified id: #id #id-div1
PASSIn-document Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
PASSIn-document Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
PASSIn-document Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
PASSIn-document Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
PASSIn-document Element.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
PASSIn-document Element.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
PASSIn-document Element.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
PASSIn-document Element.querySelector: ID selector, not matching non-existent descendant: #id #none
PASSIn-document Element.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
PASSIn-document Element.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
PASSIn-document Element.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
PASSIn-document Element.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
PASSIn-document Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
PASSIn-document Element.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
PASSIn-document Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
PASSIn-document Element.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
PASSIn-document Element.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
PASSIn-document Element.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
PASSIn-document Element.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
PASSIn-document Element.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
PASSIn-document Element.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
PASSIn-document Element.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
PASSIn-document Element.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
PASSIn-document Element.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
PASSIn-document Element.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
PASSIn-document Element.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
PASSIn-document Element.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
PASSIn-document Element.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
PASSIn-document Element.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
PASSIn-document Element.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
PASSIn-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
PASSIn-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
PASSIn-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
PASSIn-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
PASSIn-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
PASSIn-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
PASSIn-document Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
PASSIn-document Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
PASSIn-document Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
PASSIn-document Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
PASSIn-document Element.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
PASSIn-document Element.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
PASSIn-document Element.querySelectorAll: Descendant combinator, whitespace characters: #descendant #descendant-div2
PASSIn-document Element.querySelector: Descendant combinator, whitespace characters: #descendant #descendant-div2
PASSIn-document Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
PASSIn-document Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
PASSIn-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
PASSIn-document Element.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
PASSIn-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
PASSIn-document Element.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
PASSIn-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
PASSIn-document Element.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
PASSIn-document Element.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
PASSIn-document Element.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
PASSIn-document Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
PASSIn-document Element.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
PASSIn-document Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
PASSIn-document Element.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
PASSIn-document Element.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
PASSIn-document Element.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
PASSIn-document Element.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 > #child-div2
PASSIn-document Element.querySelector: Child combinator, surrounded by whitespace: #child-div1 > #child-div2
PASSIn-document Element.querySelectorAll: Child combinator, whitespace after: #child-div1> #child-div2
PASSIn-document Element.querySelector: Child combinator, whitespace after: #child-div1> #child-div2
PASSIn-document Element.querySelectorAll: Child combinator, whitespace before: #child-div1 >#child-div2
PASSIn-document Element.querySelector: Child combinator, whitespace before: #child-div1 >#child-div2
PASSIn-document Element.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
PASSIn-document Element.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
PASSIn-document Element.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
PASSIn-document Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
PASSIn-document Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
PASSIn-document Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
PASSIn-document Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
PASSIn-document Element.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
PASSIn-document Element.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3
PASSIn-document Element.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3
PASSIn-document Element.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3
PASSIn-document Element.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3
PASSIn-document Element.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
PASSIn-document Element.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
PASSIn-document Element.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
PASSIn-document Element.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
PASSIn-document Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
PASSIn-document Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
PASSIn-document Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
PASSIn-document Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
PASSIn-document Element.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
PASSIn-document Element.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
PASSIn-document Element.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
PASSIn-document Element.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
PASSIn-document Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
PASSIn-document Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
PASSIn-document Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
PASSIn-document Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
PASSIn-document Element.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 ~ #sibling-p3
PASSIn-document Element.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 ~ #sibling-p3
PASSIn-document Element.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ #sibling-p3
PASSIn-document Element.querySelector: General sibling combinator, whitespace after: #sibling-p2~ #sibling-p3
PASSIn-document Element.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 ~#sibling-p3
PASSIn-document Element.querySelector: General sibling combinator, whitespace before: #sibling-p2 ~#sibling-p3
PASSIn-document Element.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
PASSIn-document Element.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
PASSIn-document Element.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strong
PASSIn-document Element.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strong
PASSIn-document Element.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, #group strong
PASSIn-document Element.querySelector: Syntax, group of selectors separator, whitespace after: #group em, #group strong
PASSIn-document Element.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em ,#group strong
PASSIn-document Element.querySelector: Syntax, group of selectors separator, whitespace before: #group em ,#group strong
PASSIn-document Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
PASSIn-document Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
PASSIn-document Element.querySelectorAll: Slotted selector: ::slotted(foo)
PASSIn-document Element.querySelector: Slotted selector: ::slotted(foo)
PASSIn-document Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
PASSIn-document Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo

bundle built 2026-07-16T07:16:48.063Z