kitesurf · WPT

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

Subtests

statussubtestmessage
PASSSelectors-API Level 2 Test Suite: HTML with Selectors Level 3
PASSDocument should not support matches
PASSDetached Element supports matches
PASSFragment should not support matches
PASSIn-document Element supports matches
FAILDIV Element.matches(null)Failed to execute 'matches' on 'Element': 'null' is not a valid selector. Cannot read properties of null (reading 'length')
FAILDIV Element.matches(undefined)Failed to execute 'matches' on 'Element': 'undefined' is not a valid selector. Cannot read properties of undefined (reading 'length')
PASSDIV Element.matches no parameter
PASSNULL Element.matches(null)
PASSNULL Element.matches(undefined)
PASSNULL Element.matches no parameter
PASSUNDEFINED Element.matches(null)
PASSUNDEFINED Element.matches(undefined)
PASSUNDEFINED Element.matches no parameter
PASSDetached Element.matches: Empty String:
PASSDetached Element.matches: Invalid character: [
PASSDetached Element.matches: Invalid character: ]
PASSDetached Element.matches: Invalid character: (
PASSDetached Element.matches: Invalid character: )
PASSDetached Element.matches: Invalid character: {
PASSDetached Element.matches: Invalid character: }
PASSDetached Element.matches: Invalid character: <
PASSDetached Element.matches: Invalid character: >
PASSDetached Element.matches: Invalid ID: #
PASSDetached Element.matches: Invalid group of selectors: div,
PASSDetached Element.matches: Invalid class: .
PASSDetached Element.matches: Invalid class: .5cm
PASSDetached Element.matches: Invalid class: ..test
PASSDetached Element.matches: Invalid class: .foo..quux
PASSDetached Element.matches: Invalid class: .bar.
PASSDetached Element.matches: Invalid combinator: div % address, p
PASSDetached Element.matches: Invalid combinator: div ++ address, p
PASSDetached Element.matches: Invalid combinator: div ~~ address, p
PASSDetached Element.matches: Invalid [att=value] selector: [*=test]
PASSDetached Element.matches: Invalid [att=value] selector: [*|*=test]
PASSDetached Element.matches: Invalid [att=value] selector: [class= space unquoted ]
PASSDetached Element.matches: Unknown pseudo-class: div:example
PASSDetached Element.matches: Unknown pseudo-class: :example
PASSDetached Element.matches: Unknown pseudo-class: div:linkexample
PASSDetached Element.matches: Unknown pseudo-element: div::example
PASSDetached Element.matches: Unknown pseudo-element: ::example
PASSDetached Element.matches: Invalid pseudo-element: :::before
PASSDetached Element.matches: Invalid pseudo-element: :: before
PASSDetached Element.matches: Undeclared namespace: ns|div
PASSDetached Element.matches: Undeclared namespace: :not(ns|div)
PASSDetached Element.matches: Invalid namespace: ^|div
PASSDetached Element.matches: Invalid namespace: $|div
PASSDetached Element.matches: Relative selector: >*
PASSIn-document Element.matches: Empty String:
PASSIn-document Element.matches: Invalid character: [
PASSIn-document Element.matches: Invalid character: ]
PASSIn-document Element.matches: Invalid character: (
PASSIn-document Element.matches: Invalid character: )
PASSIn-document Element.matches: Invalid character: {
PASSIn-document Element.matches: Invalid character: }
PASSIn-document Element.matches: Invalid character: <
PASSIn-document Element.matches: Invalid character: >
PASSIn-document Element.matches: Invalid ID: #
PASSIn-document Element.matches: Invalid group of selectors: div,
PASSIn-document Element.matches: Invalid class: .
PASSIn-document Element.matches: Invalid class: .5cm
PASSIn-document Element.matches: Invalid class: ..test
PASSIn-document Element.matches: Invalid class: .foo..quux
PASSIn-document Element.matches: Invalid class: .bar.
PASSIn-document Element.matches: Invalid combinator: div % address, p
PASSIn-document Element.matches: Invalid combinator: div ++ address, p
PASSIn-document Element.matches: Invalid combinator: div ~~ address, p
PASSIn-document Element.matches: Invalid [att=value] selector: [*=test]
PASSIn-document Element.matches: Invalid [att=value] selector: [*|*=test]
PASSIn-document Element.matches: Invalid [att=value] selector: [class= space unquoted ]
PASSIn-document Element.matches: Unknown pseudo-class: div:example
PASSIn-document Element.matches: Unknown pseudo-class: :example
PASSIn-document Element.matches: Unknown pseudo-class: div:linkexample
PASSIn-document Element.matches: Unknown pseudo-element: div::example
PASSIn-document Element.matches: Unknown pseudo-element: ::example
PASSIn-document Element.matches: Invalid pseudo-element: :::before
PASSIn-document Element.matches: Invalid pseudo-element: :: before
PASSIn-document Element.matches: Undeclared namespace: ns|div
PASSIn-document Element.matches: Undeclared namespace: :not(ns|div)
PASSIn-document Element.matches: Invalid namespace: ^|div
PASSIn-document Element.matches: Invalid namespace: $|div
PASSIn-document Element.matches: Relative selector: >*
PASSIn-document Element.matches: Type selector, matching html element (with no refNodes): html
PASSIn-document Element.matches: Type selector, matching body element (with no refNodes): body
PASSIn-document Element.matches: Universal selector, matching all elements (with no refNodes): *
PASSIn-document Element.matches: Universal selector, matching all children of element with specified ID (with no refNodes): #universal>*
PASSIn-document Element.matches: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal>*>*
PASSIn-document Element.matches: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal *
PASSIn-document Element.matches: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align]
PASSIn-document Element.matches: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align]
PASSIn-document Element.matches: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [*|TiTlE]
PASSIn-document Element.matches: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence]
PASSIn-document Element.matches: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文]
PASSIn-document Element.matches: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected]
PASSIn-document Element.matches: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected]
PASSIn-document Element.matches: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"]
PASSIn-document Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center"
PASSIn-document Element.matches: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""]
PASSIn-document Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"]
PASSIn-document Element.matches: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo="\e9"]
PASSIn-document Element.matches: Attribute value selector with single-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSIn-document Element.matches: Attribute value selector with double-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSIn-document Element.matches: Attribute value selector with unquoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type=hidden],#attr-value input[type=radio]
PASSIn-document Element.matches: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文]
PASSIn-document Element.matches: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~="div1"]
PASSIn-document Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~="\0000e9"]
PASSIn-document Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~="\e9"]
PASSIn-document Element.matches: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSIn-document Element.matches: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSIn-document Element.matches: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSIn-document Element.matches: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文]
PASSIn-document Element.matches: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|="fr"]
PASSIn-document Element.matches: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|="en"]
PASSIn-document Element.matches: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^="http://www"]
PASSIn-document Element.matches: Attribute begins with selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-begins [lang^="en-"]
PASSIn-document Element.matches: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple']
PASSIn-document Element.matches: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=" apple"]
PASSIn-document Element.matches: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=".org"]
PASSIn-document Element.matches: Attribute ends with selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-ends [lang$="-CH"]
PASSIn-document Element.matches: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple ']
PASSIn-document Element.matches: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$="apple "]
PASSIn-document Element.matches: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*="http://www"]
PASSIn-document Element.matches: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=".org"]
PASSIn-document Element.matches: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=".example."]
PASSIn-document Element.matches: Attribute contains selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-contains [lang*="en-"]
PASSIn-document Element.matches: Attribute contains selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-contains [lang*="-CH"]
PASSIn-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple']
PASSIn-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange ']
PASSIn-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora']
PASSIn-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=" apple"]
PASSIn-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*="orange "]
PASSIn-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*="ple banana ora"]
PASSIn-document Element.matches: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple]
PASSIn-document Element.matches: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ]
PASSIn-document Element.matches: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ]
PASSIn-document Element.matches: :root pseudo-class selector, matching document root element (with no refNodes): :root
PASSIn-document Element.matches: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3)
PASSIn-document Element.matches: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n)
PASSIn-document Element.matches: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4)
PASSIn-document Element.matches: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1)
PASSIn-document Element.matches: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3)
PASSIn-document Element.matches: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n)
PASSIn-document Element.matches: :nth-last-child selector, matching every second child element from the end, starting from the fourth last (with no refNodes): #pseudo-nth li:nth-last-child(2n+4)
PASSIn-document Element.matches: :nth-last-child selector, matching every fourth element from the end, starting from the third last (with no refNodes): #pseudo-nth-p1 :nth-last-child(4n-1)
PASSIn-document Element.matches: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3)
PASSIn-document Element.matches: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n)
PASSIn-document Element.matches: :nth-of-type selector, matching every second elemetn of their type, starting from the first (with no refNodes): #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSIn-document Element.matches: :nth-last-of-type selector, matching the third last em element (with no refNodes): #pseudo-nth-p1 em:nth-last-of-type(3)
PASSIn-document Element.matches: :nth-last-of-type selector, matching every second last element of their type (with no refNodes): #pseudo-nth-p1 :nth-last-of-type(2n)
PASSIn-document Element.matches: :nth-last-of-type selector, matching every second last element of their type, starting from the last (with no refNodes): #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSIn-document Element.matches: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type
PASSIn-document Element.matches: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type
PASSIn-document Element.matches: :first-of-type selector, matching the first td element in each table row (with no refNodes): #pseudo-nth-table1 tr :first-of-type
PASSIn-document Element.matches: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type
PASSIn-document Element.matches: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type
PASSIn-document Element.matches: :last-of-type selector, matching the last td element in each table row (with no refNodes): #pseudo-nth-table1 tr :last-of-type
PASSIn-document Element.matches: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child
PASSIn-document Element.matches: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child
PASSIn-document Element.matches: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child
PASSIn-document Element.matches: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child
PASSIn-document Element.matches: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child
PASSIn-document Element.matches: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type (with no refNodes): #pseudo-only :only-of-type
PASSIn-document Element.matches: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type (with no refNodes): #pseudo-only em:only-of-type
PASSIn-document Element.matches: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty
PASSIn-document Element.matches: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty
PASSIn-document Element.matches: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with no refNodes): #pseudo-link :link, #pseudo-link :visited
PASSIn-document Element.matches: :link and :visited pseudo-class selectors, matching no elements (with no refNodes): #head :link, #head :visited
FAILIn-document Element.matches: :target pseudo-class selector, matching the element referenced by the URL fragment identifier (with no refNodes): :targetassert_true: The element #target should match the selector. expected true got false
PASSIn-document Element.matches: :lang pseudo-class selector, matching inherited language (with no refNodes): #pseudo-lang-div1:lang(en)
PASSIn-document Element.matches: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)
PASSIn-document Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)
PASSIn-document Element.matches: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled
PASSIn-document Element.matches: :enabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :enabled
PASSIn-document Element.matches: :disabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled
PASSIn-document Element.matches: :disabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :disabled
PASSIn-document Element.matches: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked
PASSIn-document Element.matches: :not pseudo-class selector, matching (with no refNodes): #not>:not(div)
PASSIn-document Element.matches: :not pseudo-class selector, matching (with no refNodes): #not * :not(:first-child)
PASSIn-document Element.matches: :not pseudo-class selector argument surrounded by spaces, matching (with no refNodes): #not>:not( div )
PASSIn-document Element.matches: Class selector, matching element with specified class (with no refNodes): .class-p
PASSIn-document Element.matches: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana
PASSIn-document Element.matches: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange
PASSIn-document Element.matches: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi
PASSIn-document Element.matches: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北
PASSIn-document Element.matches: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北
PASSIn-document Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar
PASSIn-document Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar
PASSIn-document Element.matches: ID selector, matching element with specified id (with no refNodes): #id #id-div1
PASSIn-document Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1
PASSIn-document Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2
PASSIn-document Element.matches: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2
PASSIn-document Element.matches: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate
PASSIn-document Element.matches: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi
PASSIn-document Element.matches: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北
PASSIn-document Element.matches: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北
PASSIn-document Element.matches: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div
PASSIn-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): body #descendant-div1
PASSIn-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1
PASSIn-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2
PASSIn-document Element.matches: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2
PASSIn-document Element.matches: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3
PASSIn-document Element.matches: Descendant combinator, whitespace characters (with no refNodes): #descendant #descendant-div2
PASSIn-document Element.matches: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
PASSIn-document Element.matches: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
PASSIn-document Element.matches: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child>#child-div1
PASSIn-document Element.matches: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1>.child-div2
PASSIn-document Element.matches: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1>.child-div2
PASSIn-document Element.matches: Child combinator, surrounded by whitespace (with no refNodes): #child-div1 > #child-div2
PASSIn-document Element.matches: Child combinator, whitespace after (with no refNodes): #child-div1> #child-div2
PASSIn-document Element.matches: Child combinator, whitespace before (with no refNodes): #child-div1 >#child-div2
PASSIn-document Element.matches: Child combinator, no whitespace (with no refNodes): #child-div1>#child-div2
PASSIn-document Element.matches: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div
PASSIn-document Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4
PASSIn-document Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+#adjacent-div4
PASSIn-document Element.matches: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+.adjacent-div4
PASSIn-document Element.matches: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (with no refNodes): .adjacent-div2+.adjacent-div4
PASSIn-document Element.matches: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p
PASSIn-document Element.matches: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2 + #adjacent-p3
PASSIn-document Element.matches: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+ #adjacent-p3
PASSIn-document Element.matches: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2 +#adjacent-p3
PASSIn-document Element.matches: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3
PASSIn-document Element.matches: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div
PASSIn-document Element.matches: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4
PASSIn-document Element.matches: General sibling combinator, matching element with id that is a sibling of an element with id (with no refNodes): #sibling-div2~#sibling-div4
PASSIn-document Element.matches: General sibling combinator, matching element with class that is a sibling of an element with id (with no refNodes): #sibling-div2~.sibling-div
PASSIn-document Element.matches: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p
PASSIn-document Element.matches: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2 ~ #sibling-p3
PASSIn-document Element.matches: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~ #sibling-p3
PASSIn-document Element.matches: General sibling combinator, whitespace before (with no refNodes): #sibling-p2 ~#sibling-p3
PASSIn-document Element.matches: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3
PASSIn-document Element.matches: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em , #group strong
PASSIn-document Element.matches: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em, #group strong
PASSIn-document Element.matches: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em ,#group strong
PASSIn-document Element.matches: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong
PASSDetached Element.matches: Universal selector, matching all elements (with no refNodes): *
PASSDetached Element.matches: Universal selector, matching all children of element with specified ID (with no refNodes): #universal>*
PASSDetached Element.matches: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal>*>*
PASSDetached Element.matches: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal *
PASSDetached Element.matches: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align]
PASSDetached Element.matches: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align]
PASSDetached Element.matches: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [*|TiTlE]
PASSDetached Element.matches: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence]
PASSDetached Element.matches: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文]
PASSDetached Element.matches: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected]
PASSDetached Element.matches: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected]
PASSDetached Element.matches: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"]
PASSDetached Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center"
PASSDetached Element.matches: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""]
PASSDetached Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"]
PASSDetached Element.matches: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo="\e9"]
PASSDetached Element.matches: Attribute value selector with single-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSDetached Element.matches: Attribute value selector with double-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSDetached Element.matches: Attribute value selector with unquoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type=hidden],#attr-value input[type=radio]
PASSDetached Element.matches: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文]
PASSDetached Element.matches: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~="div1"]
PASSDetached Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~="\0000e9"]
PASSDetached Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~="\e9"]
PASSDetached Element.matches: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSDetached Element.matches: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSDetached Element.matches: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSDetached Element.matches: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文]
PASSDetached Element.matches: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|="fr"]
PASSDetached Element.matches: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|="en"]
PASSDetached Element.matches: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^="http://www"]
PASSDetached Element.matches: Attribute begins with selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-begins [lang^="en-"]
PASSDetached Element.matches: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple']
PASSDetached Element.matches: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=" apple"]
PASSDetached Element.matches: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=".org"]
PASSDetached Element.matches: Attribute ends with selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-ends [lang$="-CH"]
PASSDetached Element.matches: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple ']
PASSDetached Element.matches: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$="apple "]
PASSDetached Element.matches: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*="http://www"]
PASSDetached Element.matches: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=".org"]
PASSDetached Element.matches: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=".example."]
PASSDetached Element.matches: Attribute contains selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-contains [lang*="en-"]
PASSDetached Element.matches: Attribute contains selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-contains [lang*="-CH"]
PASSDetached Element.matches: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple']
PASSDetached Element.matches: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange ']
PASSDetached Element.matches: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora']
PASSDetached Element.matches: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=" apple"]
PASSDetached Element.matches: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*="orange "]
PASSDetached Element.matches: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*="ple banana ora"]
PASSDetached Element.matches: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple]
PASSDetached Element.matches: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ]
PASSDetached Element.matches: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ]
PASSDetached Element.matches: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3)
PASSDetached Element.matches: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n)
PASSDetached Element.matches: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4)
PASSDetached Element.matches: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1)
PASSDetached Element.matches: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3)
PASSDetached Element.matches: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n)
PASSDetached Element.matches: :nth-last-child selector, matching every second child element from the end, starting from the fourth last (with no refNodes): #pseudo-nth li:nth-last-child(2n+4)
PASSDetached Element.matches: :nth-last-child selector, matching every fourth element from the end, starting from the third last (with no refNodes): #pseudo-nth-p1 :nth-last-child(4n-1)
PASSDetached Element.matches: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3)
PASSDetached Element.matches: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n)
PASSDetached Element.matches: :nth-of-type selector, matching every second elemetn of their type, starting from the first (with no refNodes): #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSDetached Element.matches: :nth-last-of-type selector, matching the third last em element (with no refNodes): #pseudo-nth-p1 em:nth-last-of-type(3)
PASSDetached Element.matches: :nth-last-of-type selector, matching every second last element of their type (with no refNodes): #pseudo-nth-p1 :nth-last-of-type(2n)
PASSDetached Element.matches: :nth-last-of-type selector, matching every second last element of their type, starting from the last (with no refNodes): #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSDetached Element.matches: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type
PASSDetached Element.matches: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type
PASSDetached Element.matches: :first-of-type selector, matching the first td element in each table row (with no refNodes): #pseudo-nth-table1 tr :first-of-type
PASSDetached Element.matches: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type
PASSDetached Element.matches: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type
PASSDetached Element.matches: :last-of-type selector, matching the last td element in each table row (with no refNodes): #pseudo-nth-table1 tr :last-of-type
PASSDetached Element.matches: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child
PASSDetached Element.matches: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child
PASSDetached Element.matches: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child
PASSDetached Element.matches: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child
PASSDetached Element.matches: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child
PASSDetached Element.matches: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type (with no refNodes): #pseudo-only :only-of-type
PASSDetached Element.matches: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type (with no refNodes): #pseudo-only em:only-of-type
PASSDetached Element.matches: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty
PASSDetached Element.matches: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty
PASSDetached Element.matches: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with no refNodes): #pseudo-link :link, #pseudo-link :visited
PASSDetached Element.matches: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)
PASSDetached Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)
PASSDetached Element.matches: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled
PASSDetached Element.matches: :enabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :enabled
PASSDetached Element.matches: :disabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled
PASSDetached Element.matches: :disabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :disabled
PASSDetached Element.matches: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked
PASSDetached Element.matches: :not pseudo-class selector, matching (with no refNodes): #not>:not(div)
PASSDetached Element.matches: :not pseudo-class selector, matching (with no refNodes): #not * :not(:first-child)
PASSDetached Element.matches: :not pseudo-class selector argument surrounded by spaces, matching (with no refNodes): #not>:not( div )
PASSDetached Element.matches: Class selector, matching element with specified class (with no refNodes): .class-p
PASSDetached Element.matches: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana
PASSDetached Element.matches: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange
PASSDetached Element.matches: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi
PASSDetached Element.matches: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北
PASSDetached Element.matches: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北
PASSDetached Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar
PASSDetached Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar
PASSDetached Element.matches: ID selector, matching element with specified id (with no refNodes): #id #id-div1
PASSDetached Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1
PASSDetached Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2
PASSDetached Element.matches: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2
PASSDetached Element.matches: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate
PASSDetached Element.matches: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi
PASSDetached Element.matches: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北
PASSDetached Element.matches: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北
PASSDetached Element.matches: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div
PASSDetached Element.matches: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1
PASSDetached Element.matches: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2
PASSDetached Element.matches: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2
PASSDetached Element.matches: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3
PASSDetached Element.matches: Descendant combinator, whitespace characters (with no refNodes): #descendant #descendant-div2
PASSDetached Element.matches: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
PASSDetached Element.matches: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
PASSDetached Element.matches: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child>#child-div1
PASSDetached Element.matches: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1>.child-div2
PASSDetached Element.matches: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1>.child-div2
PASSDetached Element.matches: Child combinator, surrounded by whitespace (with no refNodes): #child-div1 > #child-div2
PASSDetached Element.matches: Child combinator, whitespace after (with no refNodes): #child-div1> #child-div2
PASSDetached Element.matches: Child combinator, whitespace before (with no refNodes): #child-div1 >#child-div2
PASSDetached Element.matches: Child combinator, no whitespace (with no refNodes): #child-div1>#child-div2
PASSDetached Element.matches: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div
PASSDetached Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4
PASSDetached Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+#adjacent-div4
PASSDetached Element.matches: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+.adjacent-div4
PASSDetached Element.matches: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (with no refNodes): .adjacent-div2+.adjacent-div4
PASSDetached Element.matches: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p
PASSDetached Element.matches: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2 + #adjacent-p3
PASSDetached Element.matches: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+ #adjacent-p3
PASSDetached Element.matches: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2 +#adjacent-p3
PASSDetached Element.matches: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3
PASSDetached Element.matches: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div
PASSDetached Element.matches: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4
PASSDetached Element.matches: General sibling combinator, matching element with id that is a sibling of an element with id (with no refNodes): #sibling-div2~#sibling-div4
PASSDetached Element.matches: General sibling combinator, matching element with class that is a sibling of an element with id (with no refNodes): #sibling-div2~.sibling-div
PASSDetached Element.matches: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p
PASSDetached Element.matches: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2 ~ #sibling-p3
PASSDetached Element.matches: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~ #sibling-p3
PASSDetached Element.matches: General sibling combinator, whitespace before (with no refNodes): #sibling-p2 ~#sibling-p3
PASSDetached Element.matches: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3
PASSDetached Element.matches: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em , #group strong
PASSDetached Element.matches: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em, #group strong
PASSDetached Element.matches: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em ,#group strong
PASSDetached Element.matches: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong
PASSFragment Element.matches: Universal selector, matching all elements (with no refNodes): *
PASSFragment Element.matches: Universal selector, matching all children of element with specified ID (with no refNodes): #universal>*
PASSFragment Element.matches: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal>*>*
PASSFragment Element.matches: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal *
PASSFragment Element.matches: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align]
PASSFragment Element.matches: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align]
PASSFragment Element.matches: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [*|TiTlE]
PASSFragment Element.matches: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence]
PASSFragment Element.matches: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文]
PASSFragment Element.matches: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected]
PASSFragment Element.matches: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected]
PASSFragment Element.matches: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"]
PASSFragment Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center"
PASSFragment Element.matches: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""]
PASSFragment Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"]
PASSFragment Element.matches: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo="\e9"]
PASSFragment Element.matches: Attribute value selector with single-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type='hidden'],#attr-value input[type='radio']
PASSFragment Element.matches: Attribute value selector with double-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type="hidden"],#attr-value input[type='radio']
PASSFragment Element.matches: Attribute value selector with unquoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type=hidden],#attr-value input[type=radio]
PASSFragment Element.matches: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文]
PASSFragment Element.matches: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~="div1"]
PASSFragment Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~="\0000e9"]
PASSFragment Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~="\e9"]
PASSFragment Element.matches: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSFragment Element.matches: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSFragment Element.matches: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSFragment Element.matches: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文]
PASSFragment Element.matches: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|="fr"]
PASSFragment Element.matches: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|="en"]
PASSFragment Element.matches: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^="http://www"]
PASSFragment Element.matches: Attribute begins with selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-begins [lang^="en-"]
PASSFragment Element.matches: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple']
PASSFragment Element.matches: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=" apple"]
PASSFragment Element.matches: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=".org"]
PASSFragment Element.matches: Attribute ends with selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-ends [lang$="-CH"]
PASSFragment Element.matches: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple ']
PASSFragment Element.matches: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$="apple "]
PASSFragment Element.matches: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*="http://www"]
PASSFragment Element.matches: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=".org"]
PASSFragment Element.matches: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=".example."]
PASSFragment Element.matches: Attribute contains selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-contains [lang*="en-"]
PASSFragment Element.matches: Attribute contains selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-contains [lang*="-CH"]
PASSFragment Element.matches: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple']
PASSFragment Element.matches: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange ']
PASSFragment Element.matches: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora']
PASSFragment Element.matches: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=" apple"]
PASSFragment Element.matches: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*="orange "]
PASSFragment Element.matches: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*="ple banana ora"]
PASSFragment Element.matches: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple]
PASSFragment Element.matches: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ]
PASSFragment Element.matches: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ]
PASSFragment Element.matches: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3)
PASSFragment Element.matches: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n)
PASSFragment Element.matches: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4)
PASSFragment Element.matches: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1)
PASSFragment Element.matches: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3)
PASSFragment Element.matches: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n)
PASSFragment Element.matches: :nth-last-child selector, matching every second child element from the end, starting from the fourth last (with no refNodes): #pseudo-nth li:nth-last-child(2n+4)
PASSFragment Element.matches: :nth-last-child selector, matching every fourth element from the end, starting from the third last (with no refNodes): #pseudo-nth-p1 :nth-last-child(4n-1)
PASSFragment Element.matches: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3)
PASSFragment Element.matches: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n)
PASSFragment Element.matches: :nth-of-type selector, matching every second elemetn of their type, starting from the first (with no refNodes): #pseudo-nth-p1 span:nth-of-type(2n-1)
PASSFragment Element.matches: :nth-last-of-type selector, matching the third last em element (with no refNodes): #pseudo-nth-p1 em:nth-last-of-type(3)
PASSFragment Element.matches: :nth-last-of-type selector, matching every second last element of their type (with no refNodes): #pseudo-nth-p1 :nth-last-of-type(2n)
PASSFragment Element.matches: :nth-last-of-type selector, matching every second last element of their type, starting from the last (with no refNodes): #pseudo-nth-p1 span:nth-last-of-type(2n-1)
PASSFragment Element.matches: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type
PASSFragment Element.matches: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type
PASSFragment Element.matches: :first-of-type selector, matching the first td element in each table row (with no refNodes): #pseudo-nth-table1 tr :first-of-type
PASSFragment Element.matches: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type
PASSFragment Element.matches: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type
PASSFragment Element.matches: :last-of-type selector, matching the last td element in each table row (with no refNodes): #pseudo-nth-table1 tr :last-of-type
PASSFragment Element.matches: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child
PASSFragment Element.matches: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child
PASSFragment Element.matches: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child
PASSFragment Element.matches: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child
PASSFragment Element.matches: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child
PASSFragment Element.matches: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type (with no refNodes): #pseudo-only :only-of-type
PASSFragment Element.matches: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type (with no refNodes): #pseudo-only em:only-of-type
PASSFragment Element.matches: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty
PASSFragment Element.matches: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty
PASSFragment Element.matches: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with no refNodes): #pseudo-link :link, #pseudo-link :visited
PASSFragment Element.matches: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)
PASSFragment Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)
PASSFragment Element.matches: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled
PASSFragment Element.matches: :enabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :enabled
PASSFragment Element.matches: :disabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled
PASSFragment Element.matches: :disabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :disabled
PASSFragment Element.matches: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked
PASSFragment Element.matches: :not pseudo-class selector, matching (with no refNodes): #not>:not(div)
PASSFragment Element.matches: :not pseudo-class selector, matching (with no refNodes): #not * :not(:first-child)
PASSFragment Element.matches: :not pseudo-class selector argument surrounded by spaces, matching (with no refNodes): #not>:not( div )
PASSFragment Element.matches: Class selector, matching element with specified class (with no refNodes): .class-p
PASSFragment Element.matches: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana
PASSFragment Element.matches: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange
PASSFragment Element.matches: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi
PASSFragment Element.matches: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北
PASSFragment Element.matches: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北
PASSFragment Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar
PASSFragment Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar
PASSFragment Element.matches: ID selector, matching element with specified id (with no refNodes): #id #id-div1
PASSFragment Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1
PASSFragment Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2
PASSFragment Element.matches: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2
PASSFragment Element.matches: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate
PASSFragment Element.matches: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi
PASSFragment Element.matches: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北
PASSFragment Element.matches: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北
PASSFragment Element.matches: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div
PASSFragment Element.matches: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1
PASSFragment Element.matches: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2
PASSFragment Element.matches: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2
PASSFragment Element.matches: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3
PASSFragment Element.matches: Descendant combinator, whitespace characters (with no refNodes): #descendant #descendant-div2
PASSFragment Element.matches: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
PASSFragment Element.matches: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
PASSFragment Element.matches: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child>#child-div1
PASSFragment Element.matches: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1>.child-div2
PASSFragment Element.matches: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1>.child-div2
PASSFragment Element.matches: Child combinator, surrounded by whitespace (with no refNodes): #child-div1 > #child-div2
PASSFragment Element.matches: Child combinator, whitespace after (with no refNodes): #child-div1> #child-div2
PASSFragment Element.matches: Child combinator, whitespace before (with no refNodes): #child-div1 >#child-div2
PASSFragment Element.matches: Child combinator, no whitespace (with no refNodes): #child-div1>#child-div2
PASSFragment Element.matches: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div
PASSFragment Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4
PASSFragment Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+#adjacent-div4
PASSFragment Element.matches: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+.adjacent-div4
PASSFragment Element.matches: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (with no refNodes): .adjacent-div2+.adjacent-div4
PASSFragment Element.matches: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p
PASSFragment Element.matches: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2 + #adjacent-p3
PASSFragment Element.matches: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+ #adjacent-p3
PASSFragment Element.matches: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2 +#adjacent-p3
PASSFragment Element.matches: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3
PASSFragment Element.matches: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div
PASSFragment Element.matches: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4
PASSFragment Element.matches: General sibling combinator, matching element with id that is a sibling of an element with id (with no refNodes): #sibling-div2~#sibling-div4
PASSFragment Element.matches: General sibling combinator, matching element with class that is a sibling of an element with id (with no refNodes): #sibling-div2~.sibling-div
PASSFragment Element.matches: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p
PASSFragment Element.matches: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2 ~ #sibling-p3
PASSFragment Element.matches: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~ #sibling-p3
PASSFragment Element.matches: General sibling combinator, whitespace before (with no refNodes): #sibling-p2 ~#sibling-p3
PASSFragment Element.matches: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3
PASSFragment Element.matches: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em , #group strong
PASSFragment Element.matches: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em, #group strong
PASSFragment Element.matches: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em ,#group strong
PASSFragment Element.matches: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong
PASSIn-document Element.matches: Attribute presence selector, matching align attribute with value (with refNode Element): .attr-presence-div1[align]
PASSIn-document Element.matches: Attribute presence selector, matching align attribute with empty value (with refNode Element): .attr-presence-div2[align]
PASSIn-document Element.matches: Attribute presence selector, matching title attribute, case insensitivity (with refNode Element): [TiTlE]
PASSIn-document Element.matches: Attribute presence selector, matching custom data-* attribute (with refNode Element): [data-attr-presence]
PASSIn-document Element.matches: Attribute presence selector, matching attribute with non-ASCII characters (with refNode Element): ul[data-中文]
PASSIn-document Element.matches: Attribute presence selector, matching option with selected attribute (with refNode Element): #attr-presence-select2 option[selected]
PASSIn-document Element.matches: Attribute presence selector, matching multiple options with selected attributes (with refNode Element): #attr-presence-select3 option[selected]
PASSIn-document Element.matches: Attribute value selector, matching align attribute with value (with refNode Element): [align="center"]
PASSIn-document Element.matches: Attribute value selector, matching align attribute with empty value (with refNode Element): [align=""]
PASSIn-document Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with refNode Element): [data-attr-value="\e9"]
PASSIn-document Element.matches: Attribute value selector, matching custom data-* attribute with escaped character (with refNode Element): [data-attr-value_foo="\e9"]
PASSIn-document Element.matches: Attribute value selector with single-quoted value, matching multiple inputs with type attributes (with refNode Element): input[type='hidden'],#attr-value input[type='radio']
PASSIn-document Element.matches: Attribute value selector with double-quoted value, matching multiple inputs with type attributes (with refNode Element): input[type="hidden"],#attr-value input[type='radio']
PASSIn-document Element.matches: Attribute value selector with unquoted value, matching multiple inputs with type attributes (with refNode Element): input[type=hidden],#attr-value input[type=radio]
PASSIn-document Element.matches: Attribute value selector, matching attribute with value using non-ASCII characters (with refNode Element): [data-attr-value=中文]
PASSIn-document Element.matches: Attribute whitespace-separated list selector, matching class attribute with value (with refNode Element): [class~="div1"]
PASSIn-document Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with refNode Element): [data-attr-whitespace~="\0000e9"]
PASSIn-document Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with refNode Element): [data-attr-whitespace_foo~="\e9"]
PASSIn-document Element.matches: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes (with refNode Element): a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
PASSIn-document Element.matches: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes (with refNode Element): a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
PASSIn-document Element.matches: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes (with refNode Element): a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
PASSIn-document Element.matches: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with refNode Element): [title~=中文]
PASSIn-document Element.matches: Attribute hyphen-separated list selector, matching lang attribute with exact value (with refNode Element): #attr-hyphen-div2[lang|="fr"]
PASSIn-document Element.matches: Attribute hyphen-separated list selector, matching lang attribute with partial value (with refNode Element): #attr-hyphen-div3[lang|="en"]
PASSIn-document Element.matches: Attribute begins with selector, matching href attributes beginning with specified substring (with refNode Element): a[href^="http://www"]
PASSIn-document Element.matches: Attribute begins with selector, matching lang attributes beginning with specified substring, (with refNode Element): [lang^="en-"]
PASSIn-document Element.matches: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class^=' apple']
PASSIn-document Element.matches: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class^=" apple"]
PASSIn-document Element.matches: Attribute ends with selector, matching href attributes ending with specified substring (with refNode Element): a[href$=".org"]
PASSIn-document Element.matches: Attribute ends with selector, matching lang attributes ending with specified substring, (with refNode Element): [lang$="-CH"]
PASSIn-document Element.matches: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with refNode Element): [class$='apple ']
PASSIn-document Element.matches: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with refNode Element): [class$="apple "]
PASSIn-document Element.matches: Attribute contains selector, matching href attributes beginning with specified substring (with refNode Element): a[href*="http://www"]
PASSIn-document Element.matches: Attribute contains selector, matching href attributes ending with specified substring (with refNode Element): a[href*=".org"]
PASSIn-document Element.matches: Attribute contains selector, matching href attributes containing specified substring (with refNode Element): a[href*=".example."]
PASSIn-document Element.matches: Attribute contains selector, matching lang attributes beginning with specified substring, (with refNode Element): [lang*="en-"]
PASSIn-document Element.matches: Attribute contains selector, matching lang attributes ending with specified substring, (with refNode Element): [lang*="-CH"]
PASSIn-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class*=' apple']
PASSIn-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with refNode Element): [class*='orange ']
PASSIn-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with refNode Element): [class*='ple banana ora']
PASSIn-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class*=" apple"]
PASSIn-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with refNode Element): [class*="orange "]
PASSIn-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with refNode Element): [class*="ple banana ora"]
PASSIn-document Element.matches: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with refNode Element): [class*= apple]
PASSIn-document Element.matches: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with refNode Element): [class*=orange ]
PASSIn-document Element.matches: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with refNode Element): [class*= banana ]
PASSIn-document Element.matches: :nth-child selector, matching the third child element (with refNode Element): :nth-child(3)
PASSIn-document Element.matches: :nth-child selector, matching every third child element (with refNode Element): li:nth-child(3n)
PASSIn-document Element.matches: :nth-child selector, matching every second child element, starting from the fourth (with refNode Element): li:nth-child(2n+4)
PASSIn-document Element.matches: :nth-child selector, matching every second child element, starting from the fourth, with whitespace (with refNode Element): li:nth-child(2n + 4)
PASSIn-document Element.matches: :nth-child selector, matching every fourth child element, starting from the third (with refNode Element): :nth-child(4n-1)
PASSIn-document Element.matches: :nth-child selector, matching every fourth child element, starting from the third, with whitespace (with refNode Element): :nth-child(4n - 1)
PASSIn-document Element.matches: :nth-child selector used twice, matching (with refNode Element): :nth-child(1) :nth-child(1)
PASSIn-document Element.matches: :nth-last-child selector, matching the third last child element (with refNode Element): :nth-last-child(3)
PASSIn-document Element.matches: :nth-last-child selector, matching every third child element from the end (with refNode Element): li:nth-last-child(3n)
PASSIn-document Element.matches: :nth-last-child selector, matching every second child element from the end, starting from the fourth last (with refNode Element): li:nth-last-child(2n+4)
PASSIn-document Element.matches: :nth-last-child selector, matching every fourth element from the end, starting from the third last (with refNode Element): :nth-last-child(4n-1)
PASSIn-document Element.matches: :nth-of-type selector, matching the third em element (with refNode Element): em:nth-of-type(3)
PASSIn-document Element.matches: :nth-of-type selector, matching every second element of their type (with refNode Element): :nth-of-type(2n)
PASSIn-document Element.matches: :nth-of-type selector, matching every second elemetn of their type, starting from the first (with refNode Element): span:nth-of-type(2n-1)
PASSIn-document Element.matches: :nth-last-of-type selector, matching the third last em element (with refNode Element): em:nth-last-of-type(3)
PASSIn-document Element.matches: :nth-last-of-type selector, matching every second last element of their type (with refNode Element): :nth-last-of-type(2n)
PASSIn-document Element.matches: :nth-last-of-type selector, matching every second last element of their type, starting from the last (with refNode Element): span:nth-last-of-type(2n-1)
PASSIn-document Element.matches: :first-of-type selector, matching the first em element (with refNode Element): em:first-of-type
PASSIn-document Element.matches: :first-of-type selector, matching the first of every type of element (with refNode Element): :first-of-type
PASSIn-document Element.matches: :first-of-type selector, matching the first td element in each table row (with refNode Element): tr :first-of-type
PASSIn-document Element.matches: :last-of-type selector, matching the last em elemnet (with refNode Element): em:last-of-type
PASSIn-document Element.matches: :last-of-type selector, matching the last of every type of element (with refNode Element): :last-of-type
PASSIn-document Element.matches: :last-of-type selector, matching the last td element in each table row (with refNode Element): tr :last-of-type
PASSIn-document Element.matches: :first-child pseudo-class selector, matching first child div element (with refNode Element): div:first-child
PASSIn-document Element.matches: :first-child pseudo-class selector, matching first-child of multiple elements (with refNode Element): span:first-child
PASSIn-document Element.matches: :last-child pseudo-class selector, matching last child div element (with refNode Element): div:last-child
PASSIn-document Element.matches: :last-child pseudo-class selector, matching first-child of multiple elements (with refNode Element): span:last-child
PASSIn-document Element.matches: :pseudo-only-child pseudo-class selector, matching all only-child elements (with refNode Element): :only-child
PASSIn-document Element.matches: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type (with refNode Element): :only-of-type
PASSIn-document Element.matches: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type (with refNode Element): em:only-of-type
PASSIn-document Element.matches: :empty pseudo-class selector, matching empty p elements (with refNode Element): p:empty
PASSIn-document Element.matches: :empty pseudo-class selector, matching all empty elements (with refNode Element): :empty
PASSIn-document Element.matches: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with refNode Element): :link, #pseudo-link :visited
PASSIn-document Element.matches: :link and :visited pseudo-class selectors, matching no elements (with refNode Element): :link, #head :visited
PASSIn-document Element.matches: :lang pseudo-class selector, matching inherited language (1) (with no refNodes): #pseudo-lang-div1:lang(en)
PASSIn-document Element.matches: :lang pseudo-class selector, matching specified language with exact value (1) (with no refNodes): #pseudo-lang-div2:lang(fr)
PASSIn-document Element.matches: :lang pseudo-class selector, matching specified language with partial value (1) (with no refNodes): #pseudo-lang-div3:lang(en)
PASSIn-document Element.matches: :enabled pseudo-class selector, matching all enabled form controls (1) (with no refNodes): #pseudo-ui :enabled
PASSIn-document Element.matches: :enabled pseudo-class selector, not matching link elements (1) (with no refNodes): #pseudo-link :enabled
PASSIn-document Element.matches: :disabled pseudo-class selector, matching all disabled form controls (1) (with no refNodes): #pseudo-ui :disabled
PASSIn-document Element.matches: :disabled pseudo-class selector, not matching link elements (1) (with no refNodes): #pseudo-link :disabled
PASSIn-document Element.matches: :checked pseudo-class selector, matching checked radio buttons and checkboxes (1) (with no refNodes): #pseudo-ui :checked
PASSIn-document Element.matches: :not pseudo-class selector, matching (1) (with no refNodes): #not>:not(div)
PASSIn-document Element.matches: :not pseudo-class selector, matching (1) (with no refNodes): #not * :not(:first-child)
PASSIn-document Element.matches: Class selector, matching element with specified class (1) (with no refNodes): .class-p
PASSIn-document Element.matches: Class selector, chained, matching only elements with all specified classes (1) (with no refNodes): #class .apple.orange.banana
PASSIn-document Element.matches: Class Selector, chained, with type selector (1) (with no refNodes): div.apple.banana.orange
PASSIn-document Element.matches: Class selector, matching element with class value using non-ASCII characters (2) (with no refNodes): .台北Táiběi
PASSIn-document Element.matches: Class selector, matching multiple elements with class value using non-ASCII characters (1) (with no refNodes): .台北
PASSIn-document Element.matches: Class selector, chained, matching element with multiple class values using non-ASCII characters (2) (with no refNodes): .台北Táiběi.台北
PASSIn-document Element.matches: Class selector, matching element with class with escaped character (1) (with no refNodes): .foo\:bar
PASSIn-document Element.matches: Class selector, matching element with class with escaped character (1) (with no refNodes): .test\.foo\[5\]bar
PASSIn-document Element.matches: ID selector, matching element with specified id (1) (with no refNodes): #id #id-div1
PASSIn-document Element.matches: ID selector, chained, matching element with specified id (1) (with no refNodes): #id-div1, #id-div1
PASSIn-document Element.matches: ID selector, chained, matching element with specified id (1) (with no refNodes): #id-div1, #id-div2
PASSIn-document Element.matches: ID Selector, chained, with type selector (1) (with no refNodes): div#id-div1, div#id-div2
PASSIn-document Element.matches: ID selector, matching multiple elements with duplicate id (1) (with no refNodes): #id-li-duplicate
PASSIn-document Element.matches: ID selector, matching id value using non-ASCII characters (3) (with no refNodes): #台北Táiběi
PASSIn-document Element.matches: ID selector, matching id value using non-ASCII characters (4) (with no refNodes): #台北
PASSIn-document Element.matches: ID selector, matching id values using non-ASCII characters (2) (with no refNodes): #台北Táiběi, #台北
PASSIn-document Element.matches: Descendant combinator, matching element that is a descendant of an element with id (1) (with no refNodes): #descendant div
PASSIn-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element (1) (with no refNodes): body #descendant-div1
PASSIn-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element (1) (with no refNodes): div #descendant-div1
PASSIn-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant #descendant-div2
PASSIn-document Element.matches: Descendant combinator, matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant .descendant-div2
PASSIn-document Element.matches: Descendant combinator, matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1 .descendant-div3
PASSIn-document Element.matches: Descendant combinator, whitespace characters (1) (with no refNodes): #descendant #descendant-div2
PASSIn-document Element.matches: Child combinator, matching element that is a child of an element with id (1) (with no refNodes): #child>div
PASSIn-document Element.matches: Child combinator, matching element with id that is a child of an element (1) (with no refNodes): div>#child-div1
PASSIn-document Element.matches: Child combinator, matching element with id that is a child of an element with id (1) (with no refNodes): #child>#child-div1
PASSIn-document Element.matches: Child combinator, matching element with id that is a child of an element with class (1) (with no refNodes): #child-div1>.child-div2
PASSIn-document Element.matches: Child combinator, matching element with class that is a child of an element with class (1) (with no refNodes): .child-div1>.child-div2
PASSIn-document Element.matches: Child combinator, surrounded by whitespace (1) (with no refNodes): #child-div1 > #child-div2
PASSIn-document Element.matches: Child combinator, whitespace after (1) (with no refNodes): #child-div1> #child-div2
PASSIn-document Element.matches: Child combinator, whitespace before (1) (with no refNodes): #child-div1 >#child-div2
PASSIn-document Element.matches: Child combinator, no whitespace (1) (with no refNodes): #child-div1>#child-div2
PASSIn-document Element.matches: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (1) (with no refNodes): #adjacent-div2+div
PASSIn-document Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (1) (with no refNodes): div+#adjacent-div4
PASSIn-document Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (1) (with no refNodes): #adjacent-div2+#adjacent-div4
PASSIn-document Element.matches: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (1) (with no refNodes): #adjacent-div2+.adjacent-div4
PASSIn-document Element.matches: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (1) (with no refNodes): .adjacent-div2+.adjacent-div4
PASSIn-document Element.matches: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (1) (with no refNodes): #adjacent div+p
PASSIn-document Element.matches: Adjacent sibling combinator, surrounded by whitespace (1) (with no refNodes): #adjacent-p2 + #adjacent-p3
PASSIn-document Element.matches: Adjacent sibling combinator, whitespace after (1) (with no refNodes): #adjacent-p2+ #adjacent-p3
PASSIn-document Element.matches: Adjacent sibling combinator, whitespace before (1) (with no refNodes): #adjacent-p2 +#adjacent-p3
PASSIn-document Element.matches: Adjacent sibling combinator, no whitespace (1) (with no refNodes): #adjacent-p2+#adjacent-p3
PASSIn-document Element.matches: General sibling combinator, matching element that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~div
PASSIn-document Element.matches: General sibling combinator, matching element with id that is a sibling of an element (1) (with no refNodes): div~#sibling-div4
PASSIn-document Element.matches: General sibling combinator, matching element with id that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~#sibling-div4
PASSIn-document Element.matches: General sibling combinator, matching element with class that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~.sibling-div
PASSIn-document Element.matches: General sibling combinator, matching p element that is a sibling of a div element (1) (with no refNodes): #sibling div~p
PASSIn-document Element.matches: General sibling combinator, surrounded by whitespace (1) (with no refNodes): #sibling-p2 ~ #sibling-p3
PASSIn-document Element.matches: General sibling combinator, whitespace after (1) (with no refNodes): #sibling-p2~ #sibling-p3
PASSIn-document Element.matches: General sibling combinator, whitespace before (1) (with no refNodes): #sibling-p2 ~#sibling-p3
PASSIn-document Element.matches: General sibling combinator, no whitespace (1) (with no refNodes): #sibling-p2~#sibling-p3
PASSIn-document Element.matches: Syntax, group of selectors separator, surrounded by whitespace (1) (with no refNodes): #group em , #group strong
PASSIn-document Element.matches: Syntax, group of selectors separator, whitespace after (1) (with no refNodes): #group em, #group strong
PASSIn-document Element.matches: Syntax, group of selectors separator, whitespace before (1) (with no refNodes): #group em ,#group strong
PASSIn-document Element.matches: Syntax, group of selectors separator, no whitespace (1) (with no refNodes): #group em,#group strong

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