diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 6cc18268ca334b..6f7e879d36f2ee 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -2859,7 +2859,6 @@ crbug.com/626703 external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-trac
crbug.com/626703 external/wpt/webrtc/RTCPeerConnection-remote-track-mute.https.html [ Timeout ]
crbug.com/626703 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/system-cyclic-invalid.html [ Pass Failure Timeout ]
crbug.com/626703 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/system-alphabetic-invalid.html [ Pass Failure Timeout ]
-crbug.com/626703 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Timeout ]
crbug.com/626703 external/wpt/css/css-values/ch-unit-011.html [ Failure ]
crbug.com/626703 [ Mac ] external/wpt/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-width-height.html [ Crash Timeout ]
crbug.com/626703 external/wpt/css/css-values/ic-unit-010.html [ Failure ]
@@ -2997,8 +2996,12 @@ crbug.com/626703 external/wpt/svg/rendering/order/z-index.svg [ Failure ]
crbug.com/626703 external/wpt/web-animations/timing-model/timelines/update-and-send-events.html [ Failure ]
crbug.com/626703 external/wpt/screen-orientation/orientation-reading.html [ Timeout ]
crbug.com/626703 external/wpt/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html [ Failure ]
-crbug.com/626703 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251 [ Timeout ]
-crbug.com/626703 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8 [ Timeout ]
+
+# navigation.sub.html fails or times out when run with run_web_tests.py but passes with run_wpt_tests.py
+crbug.com/626703 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Timeout Failure ]
+crbug.com/626703 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251 [ Timeout Failure ]
+crbug.com/626703 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8 [ Timeout Failure ]
+
crbug.com/626703 external/wpt/css/css-transforms/transform-box/view-box-mutation-001.html [ Failure ]
crbug.com/626703 external/wpt/fetch/security/redirect-to-url-with-credentials.https.html [ Timeout ]
crbug.com/843084 external/wpt/css/css-masking/clip-path-svg-content/clip-path-shape-circle-003.svg [ Failure ]
diff --git a/third_party/blink/web_tests/android/ChromiumWPTExpectations b/third_party/blink/web_tests/android/ChromiumWPTExpectations
index df401114a67450..7c8fc0b179f7a6 100644
--- a/third_party/blink/web_tests/android/ChromiumWPTExpectations
+++ b/third_party/blink/web_tests/android/ChromiumWPTExpectations
@@ -2546,9 +2546,12 @@ crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-enc
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/attributes.sub.html?encoding=x-cp1251 [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html?encoding=windows-1252 [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html?encoding=x-cp1251 [ Failure Pass ]
-crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8 [ Timeout ]
-crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Timeout ]
-crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251 [ Timeout ]
+
+# navigation.sub.html fails or times out when run with run_web_tests.py but passes with run_wpt_tests.py
+crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8 [ Timeout Failure ]
+crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Timeout Failure ]
+crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251 [ Timeout Failure ]
+
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=appcache [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=history [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=loading [ Failure Pass ]
diff --git a/third_party/blink/web_tests/android/WeblayerWPTExpectations b/third_party/blink/web_tests/android/WeblayerWPTExpectations
index 71a3845409c98a..bf725946721674 100644
--- a/third_party/blink/web_tests/android/WeblayerWPTExpectations
+++ b/third_party/blink/web_tests/android/WeblayerWPTExpectations
@@ -2509,9 +2509,12 @@ crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-enc
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/attributes.sub.html?encoding=x-cp1251 [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html?encoding=windows-1252 [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html?encoding=x-cp1251 [ Failure Pass ]
-crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8 [ Timeout ]
-crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Timeout ]
-crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251 [ Timeout ]
+
+# navigation.sub.html fails or times out when run with run_web_tests.py but passes with run_wpt_tests.py
+crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8 [ Timeout Failure ]
+crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Timeout Failure ]
+crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251 [ Timeout Failure ]
+
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=appcache [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=history [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=loading [ Failure Pass ]
diff --git a/third_party/blink/web_tests/android/WebviewWPTExpectations b/third_party/blink/web_tests/android/WebviewWPTExpectations
index 0af47e698b4073..86307966d77323 100644
--- a/third_party/blink/web_tests/android/WebviewWPTExpectations
+++ b/third_party/blink/web_tests/android/WebviewWPTExpectations
@@ -2699,9 +2699,12 @@ crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-enc
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/attributes.sub.html?encoding=x-cp1251 [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html?encoding=windows-1252 [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html?encoding=x-cp1251 [ Failure Pass ]
-crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8 [ Timeout ]
-crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Timeout ]
-crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251 [ Timeout ]
+
+# navigation.sub.html fails or times out when run with run_web_tests.py but passes with run_wpt_tests.py
+crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8 [ Timeout Failure ]
+crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Timeout Failure ]
+crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251 [ Timeout Failure ]
+
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=appcache [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=history [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=loading [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/wpt/dom/nodes/Element-matches-expected.txt b/third_party/blink/web_tests/external/wpt/dom/nodes/Element-matches-expected.txt
deleted file mode 100644
index e0c0cfcaa9562e..00000000000000
--- a/third_party/blink/web_tests/external/wpt/dom/nodes/Element-matches-expected.txt
+++ /dev/null
@@ -1,745 +0,0 @@
-This is a testharness.js-based test.
-Found 669 tests; 667 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Selectors-API Level 2 Test Suite: HTML with Selectors Level 3
-PASS Document should not support matches
-PASS Detached Element supports matches
-PASS Fragment should not support matches
-PASS In-document Element supports matches
-PASS DIV Element.matches(null)
-PASS DIV Element.matches(undefined)
-PASS DIV Element.matches no parameter
-PASS NULL Element.matches(null)
-PASS NULL Element.matches(undefined)
-PASS NULL Element.matches no parameter
-PASS UNDEFINED Element.matches(null)
-PASS UNDEFINED Element.matches(undefined)
-PASS UNDEFINED Element.matches no parameter
-PASS Detached Element.matches: Empty String:
-PASS Detached Element.matches: Invalid character: [
-PASS Detached Element.matches: Invalid character: ]
-PASS Detached Element.matches: Invalid character: (
-PASS Detached Element.matches: Invalid character: )
-PASS Detached Element.matches: Invalid character: {
-PASS Detached Element.matches: Invalid character: }
-PASS Detached Element.matches: Invalid character: <
-PASS Detached Element.matches: Invalid character: >
-PASS Detached Element.matches: Invalid ID: #
-PASS Detached Element.matches: Invalid group of selectors: div,
-PASS Detached Element.matches: Invalid class: .
-PASS Detached Element.matches: Invalid class: .5cm
-PASS Detached Element.matches: Invalid class: ..test
-PASS Detached Element.matches: Invalid class: .foo..quux
-PASS Detached Element.matches: Invalid class: .bar.
-PASS Detached Element.matches: Invalid combinator: div & address, p
-PASS Detached Element.matches: Invalid combinator: div ++ address, p
-PASS Detached Element.matches: Invalid combinator: div ~~ address, p
-PASS Detached Element.matches: Invalid [att=value] selector: [*=test]
-PASS Detached Element.matches: Invalid [att=value] selector: [*|*=test]
-PASS Detached Element.matches: Invalid [att=value] selector: [class= space unquoted ]
-PASS Detached Element.matches: Unknown pseudo-class: div:example
-PASS Detached Element.matches: Unknown pseudo-class: :example
-PASS Detached Element.matches: Unknown pseudo-class: div:linkexample
-PASS Detached Element.matches: Unknown pseudo-element: div::example
-PASS Detached Element.matches: Unknown pseudo-element: ::example
-PASS Detached Element.matches: Invalid pseudo-element: :::before
-PASS Detached Element.matches: Invalid pseudo-element: :: before
-PASS Detached Element.matches: Undeclared namespace: ns|div
-PASS Detached Element.matches: Undeclared namespace: :not(ns|div)
-PASS Detached Element.matches: Invalid namespace: ^|div
-PASS Detached Element.matches: Invalid namespace: $|div
-PASS Detached Element.matches: Relative selector: >*
-PASS In-document Element.matches: Empty String:
-PASS In-document Element.matches: Invalid character: [
-PASS In-document Element.matches: Invalid character: ]
-PASS In-document Element.matches: Invalid character: (
-PASS In-document Element.matches: Invalid character: )
-PASS In-document Element.matches: Invalid character: {
-PASS In-document Element.matches: Invalid character: }
-PASS In-document Element.matches: Invalid character: <
-PASS In-document Element.matches: Invalid character: >
-PASS In-document Element.matches: Invalid ID: #
-PASS In-document Element.matches: Invalid group of selectors: div,
-PASS In-document Element.matches: Invalid class: .
-PASS In-document Element.matches: Invalid class: .5cm
-PASS In-document Element.matches: Invalid class: ..test
-PASS In-document Element.matches: Invalid class: .foo..quux
-PASS In-document Element.matches: Invalid class: .bar.
-PASS In-document Element.matches: Invalid combinator: div & address, p
-PASS In-document Element.matches: Invalid combinator: div ++ address, p
-PASS In-document Element.matches: Invalid combinator: div ~~ address, p
-PASS In-document Element.matches: Invalid [att=value] selector: [*=test]
-PASS In-document Element.matches: Invalid [att=value] selector: [*|*=test]
-PASS In-document Element.matches: Invalid [att=value] selector: [class= space unquoted ]
-PASS In-document Element.matches: Unknown pseudo-class: div:example
-PASS In-document Element.matches: Unknown pseudo-class: :example
-PASS In-document Element.matches: Unknown pseudo-class: div:linkexample
-PASS In-document Element.matches: Unknown pseudo-element: div::example
-PASS In-document Element.matches: Unknown pseudo-element: ::example
-PASS In-document Element.matches: Invalid pseudo-element: :::before
-PASS In-document Element.matches: Invalid pseudo-element: :: before
-PASS In-document Element.matches: Undeclared namespace: ns|div
-PASS In-document Element.matches: Undeclared namespace: :not(ns|div)
-PASS In-document Element.matches: Invalid namespace: ^|div
-PASS In-document Element.matches: Invalid namespace: $|div
-PASS In-document Element.matches: Relative selector: >*
-PASS In-document Element.matches: Type selector, matching html element (with no refNodes): html
-PASS In-document Element.matches: Type selector, matching body element (with no refNodes): body
-PASS In-document Element.matches: Universal selector, matching all elements (with no refNodes): *
-PASS In-document Element.matches: Universal selector, matching all children of element with specified ID (with no refNodes): #universal>*
-PASS In-document Element.matches: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal>*>*
-PASS In-document Element.matches: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal *
-PASS In-document Element.matches: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align]
-PASS In-document Element.matches: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align]
-PASS In-document Element.matches: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [*|TiTlE]
-PASS In-document Element.matches: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence]
-PASS In-document Element.matches: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文]
-PASS In-document Element.matches: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected]
-PASS In-document Element.matches: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected]
-PASS In-document Element.matches: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"]
-PASS In-document Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center"
-PASS In-document Element.matches: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""]
-PASS In-document Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"]
-PASS In-document Element.matches: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo="\e9"]
-PASS In-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']
-PASS In-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']
-PASS In-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]
-PASS In-document Element.matches: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文]
-PASS In-document Element.matches: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~="div1"]
-PASS In-document Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~="\0000e9"]
-PASS In-document Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~="\e9"]
-PASS In-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']
-PASS In-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']
-PASS In-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]
-PASS In-document Element.matches: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文]
-PASS In-document Element.matches: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|="fr"]
-PASS In-document Element.matches: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|="en"]
-PASS In-document Element.matches: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^="http://www"]
-PASS In-document Element.matches: Attribute begins with selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-begins [lang^="en-"]
-PASS In-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']
-PASS In-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"]
-PASS In-document Element.matches: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=".org"]
-PASS In-document Element.matches: Attribute ends with selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-ends [lang$="-CH"]
-PASS In-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 ']
-PASS In-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 "]
-PASS In-document Element.matches: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*="http://www"]
-PASS In-document Element.matches: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=".org"]
-PASS In-document Element.matches: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=".example."]
-PASS In-document Element.matches: Attribute contains selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-contains [lang*="en-"]
-PASS In-document Element.matches: Attribute contains selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-contains [lang*="-CH"]
-PASS In-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple']
-PASS In-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange ']
-PASS In-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']
-PASS In-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=" apple"]
-PASS In-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*="orange "]
-PASS In-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"]
-PASS In-document Element.matches: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple]
-PASS In-document Element.matches: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ]
-PASS In-document Element.matches: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ]
-PASS In-document Element.matches: :root pseudo-class selector, matching document root element (with no refNodes): :root
-PASS In-document Element.matches: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3)
-PASS In-document Element.matches: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n)
-PASS In-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)
-PASS In-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)
-PASS In-document Element.matches: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3)
-PASS In-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)
-PASS In-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)
-PASS In-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)
-PASS In-document Element.matches: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3)
-PASS In-document Element.matches: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n)
-PASS In-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)
-PASS In-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)
-PASS In-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)
-PASS In-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)
-PASS In-document Element.matches: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type
-PASS In-document Element.matches: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type
-PASS In-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
-PASS In-document Element.matches: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type
-PASS In-document Element.matches: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type
-PASS In-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
-PASS In-document Element.matches: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child
-PASS In-document Element.matches: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child
-PASS In-document Element.matches: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child
-PASS In-document Element.matches: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child
-PASS In-document Element.matches: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child
-PASS In-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
-PASS In-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
-PASS In-document Element.matches: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty
-PASS In-document Element.matches: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty
-PASS In-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
-FAIL In-document Element.matches: :link and :visited pseudo-class selectors, matching link elements with href attributes (with no refNodes): #head :link, #head :visited assert_true: The element #pseudo-link-link1 should match the selector. expected true got false
-PASS In-document Element.matches: :target pseudo-class selector, matching the element referenced by the URL fragment identifier (with no refNodes): :target
-PASS In-document Element.matches: :lang pseudo-class selector, matching inherited language (with no refNodes): #pseudo-lang-div1:lang(en)
-PASS In-document Element.matches: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)
-PASS In-document Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)
-PASS In-document Element.matches: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled
-PASS In-document Element.matches: :enabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :enabled
-PASS In-document Element.matches: :disabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled
-PASS In-document Element.matches: :disabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :disabled
-PASS In-document Element.matches: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked
-PASS In-document Element.matches: :not pseudo-class selector, matching (with no refNodes): #not>:not(div)
-PASS In-document Element.matches: :not pseudo-class selector, matching (with no refNodes): #not * :not(:first-child)
-PASS In-document Element.matches: :not pseudo-class selector argument surrounded by spaces, matching (with no refNodes): #not>:not( div )
-PASS In-document Element.matches: Class selector, matching element with specified class (with no refNodes): .class-p
-PASS In-document Element.matches: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana
-PASS In-document Element.matches: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange
-PASS In-document Element.matches: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi
-PASS In-document Element.matches: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北
-PASS In-document Element.matches: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北
-PASS In-document Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar
-PASS In-document Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar
-PASS In-document Element.matches: ID selector, matching element with specified id (with no refNodes): #id #id-div1
-PASS In-document Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1
-PASS In-document Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2
-PASS In-document Element.matches: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2
-PASS In-document Element.matches: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate
-PASS In-document Element.matches: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi
-PASS In-document Element.matches: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北
-PASS In-document Element.matches: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北
-PASS In-document Element.matches: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div
-PASS In-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): body #descendant-div1
-PASS In-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1
-PASS In-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2
-PASS In-document Element.matches: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2
-PASS In-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
-PASS In-document Element.matches: Descendant combinator, whitespace characters (with no refNodes): #descendant \r
-#descendant-div2
-PASS In-document Element.matches: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
-PASS In-document Element.matches: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
-PASS In-document Element.matches: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child>#child-div1
-PASS In-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
-PASS In-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
-PASS In-document Element.matches: Child combinator, surrounded by whitespace (with no refNodes): #child-div1 \r
-> \r
-#child-div2
-PASS In-document Element.matches: Child combinator, whitespace after (with no refNodes): #child-div1> \r
-#child-div2
-PASS In-document Element.matches: Child combinator, whitespace before (with no refNodes): #child-div1 \r
->#child-div2
-PASS In-document Element.matches: Child combinator, no whitespace (with no refNodes): #child-div1>#child-div2
-PASS In-document Element.matches: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div
-PASS In-document Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4
-PASS In-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
-PASS In-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
-PASS In-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
-PASS In-document Element.matches: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p
-PASS In-document Element.matches: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS In-document Element.matches: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+ \r
-#adjacent-p3
-PASS In-document Element.matches: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2 \r
-+#adjacent-p3
-PASS In-document Element.matches: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3
-PASS In-document Element.matches: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div
-PASS In-document Element.matches: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4
-PASS In-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
-PASS In-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
-PASS In-document Element.matches: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p
-PASS In-document Element.matches: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS In-document Element.matches: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~ \r
-#sibling-p3
-PASS In-document Element.matches: General sibling combinator, whitespace before (with no refNodes): #sibling-p2 \r
-~#sibling-p3
-PASS In-document Element.matches: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3
-PASS In-document Element.matches: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em \r
-, \r
-#group strong
-PASS In-document Element.matches: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em, \r
-#group strong
-PASS In-document Element.matches: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em \r
-,#group strong
-PASS In-document Element.matches: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong
-PASS Detached Element.matches: Universal selector, matching all elements (with no refNodes): *
-PASS Detached Element.matches: Universal selector, matching all children of element with specified ID (with no refNodes): #universal>*
-PASS Detached Element.matches: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal>*>*
-PASS Detached Element.matches: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal *
-PASS Detached Element.matches: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align]
-PASS Detached Element.matches: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align]
-PASS Detached Element.matches: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [*|TiTlE]
-PASS Detached Element.matches: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence]
-PASS Detached Element.matches: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文]
-PASS Detached Element.matches: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected]
-PASS Detached Element.matches: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected]
-PASS Detached Element.matches: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"]
-PASS Detached Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center"
-PASS Detached Element.matches: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""]
-PASS Detached Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"]
-PASS Detached Element.matches: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo="\e9"]
-PASS Detached 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']
-PASS Detached 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']
-PASS Detached 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]
-PASS Detached Element.matches: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文]
-PASS Detached Element.matches: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~="div1"]
-PASS Detached Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~="\0000e9"]
-PASS Detached Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~="\e9"]
-PASS Detached 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']
-PASS Detached 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']
-PASS Detached 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]
-PASS Detached Element.matches: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文]
-PASS Detached Element.matches: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|="fr"]
-PASS Detached Element.matches: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|="en"]
-PASS Detached Element.matches: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^="http://www"]
-PASS Detached Element.matches: Attribute begins with selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-begins [lang^="en-"]
-PASS Detached Element.matches: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple']
-PASS Detached Element.matches: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=" apple"]
-PASS Detached Element.matches: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=".org"]
-PASS Detached Element.matches: Attribute ends with selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-ends [lang$="-CH"]
-PASS Detached Element.matches: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple ']
-PASS Detached Element.matches: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$="apple "]
-PASS Detached Element.matches: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*="http://www"]
-PASS Detached Element.matches: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=".org"]
-PASS Detached Element.matches: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=".example."]
-PASS Detached Element.matches: Attribute contains selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-contains [lang*="en-"]
-PASS Detached Element.matches: Attribute contains selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-contains [lang*="-CH"]
-PASS Detached Element.matches: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple']
-PASS Detached Element.matches: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange ']
-PASS Detached Element.matches: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora']
-PASS Detached Element.matches: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=" apple"]
-PASS Detached Element.matches: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*="orange "]
-PASS Detached Element.matches: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*="ple banana ora"]
-PASS Detached Element.matches: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple]
-PASS Detached Element.matches: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ]
-PASS Detached Element.matches: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ]
-PASS Detached Element.matches: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3)
-PASS Detached Element.matches: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n)
-PASS Detached Element.matches: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4)
-PASS Detached Element.matches: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1)
-PASS Detached Element.matches: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3)
-PASS Detached Element.matches: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n)
-PASS Detached 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)
-PASS Detached 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)
-PASS Detached Element.matches: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3)
-PASS Detached Element.matches: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n)
-PASS Detached 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)
-PASS Detached 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)
-PASS Detached 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)
-PASS Detached 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)
-PASS Detached Element.matches: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type
-PASS Detached Element.matches: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type
-PASS Detached 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
-PASS Detached Element.matches: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type
-PASS Detached Element.matches: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type
-PASS Detached 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
-PASS Detached Element.matches: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child
-PASS Detached Element.matches: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child
-PASS Detached Element.matches: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child
-PASS Detached Element.matches: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child
-PASS Detached Element.matches: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child
-PASS Detached 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
-PASS Detached 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
-PASS Detached Element.matches: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty
-PASS Detached Element.matches: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty
-PASS Detached 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
-PASS Detached Element.matches: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)
-PASS Detached Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)
-PASS Detached Element.matches: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled
-PASS Detached Element.matches: :enabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :enabled
-PASS Detached Element.matches: :disabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled
-PASS Detached Element.matches: :disabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :disabled
-PASS Detached Element.matches: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked
-PASS Detached Element.matches: :not pseudo-class selector, matching (with no refNodes): #not>:not(div)
-PASS Detached Element.matches: :not pseudo-class selector, matching (with no refNodes): #not * :not(:first-child)
-PASS Detached Element.matches: :not pseudo-class selector argument surrounded by spaces, matching (with no refNodes): #not>:not( div )
-PASS Detached Element.matches: Class selector, matching element with specified class (with no refNodes): .class-p
-PASS Detached Element.matches: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana
-PASS Detached Element.matches: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange
-PASS Detached Element.matches: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi
-PASS Detached Element.matches: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北
-PASS Detached Element.matches: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北
-PASS Detached Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar
-PASS Detached Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar
-PASS Detached Element.matches: ID selector, matching element with specified id (with no refNodes): #id #id-div1
-PASS Detached Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1
-PASS Detached Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2
-PASS Detached Element.matches: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2
-PASS Detached Element.matches: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate
-PASS Detached Element.matches: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi
-PASS Detached Element.matches: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北
-PASS Detached Element.matches: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北
-PASS Detached Element.matches: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div
-PASS Detached Element.matches: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1
-PASS Detached Element.matches: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2
-PASS Detached Element.matches: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2
-PASS Detached Element.matches: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3
-PASS Detached Element.matches: Descendant combinator, whitespace characters (with no refNodes): #descendant \r
-#descendant-div2
-PASS Detached Element.matches: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
-PASS Detached Element.matches: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
-PASS Detached Element.matches: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child>#child-div1
-PASS Detached Element.matches: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1>.child-div2
-PASS Detached Element.matches: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1>.child-div2
-PASS Detached Element.matches: Child combinator, surrounded by whitespace (with no refNodes): #child-div1 \r
-> \r
-#child-div2
-PASS Detached Element.matches: Child combinator, whitespace after (with no refNodes): #child-div1> \r
-#child-div2
-PASS Detached Element.matches: Child combinator, whitespace before (with no refNodes): #child-div1 \r
->#child-div2
-PASS Detached Element.matches: Child combinator, no whitespace (with no refNodes): #child-div1>#child-div2
-PASS Detached Element.matches: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div
-PASS Detached Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4
-PASS Detached 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
-PASS Detached 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
-PASS Detached 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
-PASS Detached Element.matches: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p
-PASS Detached Element.matches: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Detached Element.matches: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+ \r
-#adjacent-p3
-PASS Detached Element.matches: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2 \r
-+#adjacent-p3
-PASS Detached Element.matches: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3
-PASS Detached Element.matches: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div
-PASS Detached Element.matches: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4
-PASS Detached 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
-PASS Detached 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
-PASS Detached Element.matches: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p
-PASS Detached Element.matches: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Detached Element.matches: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~ \r
-#sibling-p3
-PASS Detached Element.matches: General sibling combinator, whitespace before (with no refNodes): #sibling-p2 \r
-~#sibling-p3
-PASS Detached Element.matches: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3
-PASS Detached Element.matches: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em \r
-, \r
-#group strong
-PASS Detached Element.matches: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em, \r
-#group strong
-PASS Detached Element.matches: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em \r
-,#group strong
-PASS Detached Element.matches: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong
-PASS Fragment Element.matches: Universal selector, matching all elements (with no refNodes): *
-PASS Fragment Element.matches: Universal selector, matching all children of element with specified ID (with no refNodes): #universal>*
-PASS Fragment Element.matches: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal>*>*
-PASS Fragment Element.matches: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal *
-PASS Fragment Element.matches: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align]
-PASS Fragment Element.matches: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align]
-PASS Fragment Element.matches: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [*|TiTlE]
-PASS Fragment Element.matches: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence]
-PASS Fragment Element.matches: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文]
-PASS Fragment Element.matches: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected]
-PASS Fragment Element.matches: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected]
-PASS Fragment Element.matches: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"]
-PASS Fragment Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center"
-PASS Fragment Element.matches: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""]
-PASS Fragment Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"]
-PASS Fragment Element.matches: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo="\e9"]
-PASS Fragment 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']
-PASS Fragment 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']
-PASS Fragment 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]
-PASS Fragment Element.matches: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文]
-PASS Fragment Element.matches: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~="div1"]
-PASS Fragment Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~="\0000e9"]
-PASS Fragment Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~="\e9"]
-PASS Fragment 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']
-PASS Fragment 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']
-PASS Fragment 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]
-PASS Fragment Element.matches: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文]
-PASS Fragment Element.matches: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|="fr"]
-PASS Fragment Element.matches: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|="en"]
-PASS Fragment Element.matches: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^="http://www"]
-PASS Fragment Element.matches: Attribute begins with selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-begins [lang^="en-"]
-PASS Fragment Element.matches: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple']
-PASS Fragment Element.matches: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=" apple"]
-PASS Fragment Element.matches: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=".org"]
-PASS Fragment Element.matches: Attribute ends with selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-ends [lang$="-CH"]
-PASS Fragment Element.matches: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple ']
-PASS Fragment Element.matches: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$="apple "]
-PASS Fragment Element.matches: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*="http://www"]
-PASS Fragment Element.matches: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=".org"]
-PASS Fragment Element.matches: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=".example."]
-PASS Fragment Element.matches: Attribute contains selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-contains [lang*="en-"]
-PASS Fragment Element.matches: Attribute contains selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-contains [lang*="-CH"]
-PASS Fragment Element.matches: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple']
-PASS Fragment Element.matches: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange ']
-PASS Fragment Element.matches: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora']
-PASS Fragment Element.matches: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=" apple"]
-PASS Fragment Element.matches: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*="orange "]
-PASS Fragment Element.matches: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*="ple banana ora"]
-PASS Fragment Element.matches: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple]
-PASS Fragment Element.matches: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ]
-PASS Fragment Element.matches: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ]
-PASS Fragment Element.matches: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3)
-PASS Fragment Element.matches: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n)
-PASS Fragment Element.matches: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4)
-PASS Fragment Element.matches: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1)
-PASS Fragment Element.matches: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3)
-PASS Fragment Element.matches: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n)
-PASS Fragment 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)
-PASS Fragment 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)
-PASS Fragment Element.matches: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3)
-PASS Fragment Element.matches: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n)
-PASS Fragment 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)
-PASS Fragment 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)
-PASS Fragment 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)
-PASS Fragment 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)
-PASS Fragment Element.matches: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type
-PASS Fragment Element.matches: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type
-PASS Fragment 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
-PASS Fragment Element.matches: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type
-PASS Fragment Element.matches: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type
-PASS Fragment 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
-PASS Fragment Element.matches: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child
-PASS Fragment Element.matches: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child
-PASS Fragment Element.matches: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child
-PASS Fragment Element.matches: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child
-PASS Fragment Element.matches: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child
-PASS Fragment 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
-PASS Fragment 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
-PASS Fragment Element.matches: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty
-PASS Fragment Element.matches: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty
-PASS Fragment 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
-PASS Fragment Element.matches: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)
-PASS Fragment Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)
-PASS Fragment Element.matches: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled
-PASS Fragment Element.matches: :enabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :enabled
-PASS Fragment Element.matches: :disabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled
-PASS Fragment Element.matches: :disabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :disabled
-PASS Fragment Element.matches: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked
-PASS Fragment Element.matches: :not pseudo-class selector, matching (with no refNodes): #not>:not(div)
-PASS Fragment Element.matches: :not pseudo-class selector, matching (with no refNodes): #not * :not(:first-child)
-PASS Fragment Element.matches: :not pseudo-class selector argument surrounded by spaces, matching (with no refNodes): #not>:not( div )
-PASS Fragment Element.matches: Class selector, matching element with specified class (with no refNodes): .class-p
-PASS Fragment Element.matches: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana
-PASS Fragment Element.matches: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange
-PASS Fragment Element.matches: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi
-PASS Fragment Element.matches: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北
-PASS Fragment Element.matches: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北
-PASS Fragment Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar
-PASS Fragment Element.matches: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar
-PASS Fragment Element.matches: ID selector, matching element with specified id (with no refNodes): #id #id-div1
-PASS Fragment Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1
-PASS Fragment Element.matches: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2
-PASS Fragment Element.matches: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2
-PASS Fragment Element.matches: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate
-PASS Fragment Element.matches: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi
-PASS Fragment Element.matches: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北
-PASS Fragment Element.matches: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北
-PASS Fragment Element.matches: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div
-PASS Fragment Element.matches: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1
-PASS Fragment Element.matches: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2
-PASS Fragment Element.matches: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2
-PASS Fragment Element.matches: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3
-PASS Fragment Element.matches: Descendant combinator, whitespace characters (with no refNodes): #descendant \r
-#descendant-div2
-PASS Fragment Element.matches: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
-PASS Fragment Element.matches: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
-PASS Fragment Element.matches: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child>#child-div1
-PASS Fragment Element.matches: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1>.child-div2
-PASS Fragment Element.matches: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1>.child-div2
-PASS Fragment Element.matches: Child combinator, surrounded by whitespace (with no refNodes): #child-div1 \r
-> \r
-#child-div2
-PASS Fragment Element.matches: Child combinator, whitespace after (with no refNodes): #child-div1> \r
-#child-div2
-PASS Fragment Element.matches: Child combinator, whitespace before (with no refNodes): #child-div1 \r
->#child-div2
-PASS Fragment Element.matches: Child combinator, no whitespace (with no refNodes): #child-div1>#child-div2
-PASS Fragment Element.matches: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div
-PASS Fragment Element.matches: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4
-PASS Fragment 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
-PASS Fragment 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
-PASS Fragment 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
-PASS Fragment Element.matches: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p
-PASS Fragment Element.matches: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Fragment Element.matches: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+ \r
-#adjacent-p3
-PASS Fragment Element.matches: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2 \r
-+#adjacent-p3
-PASS Fragment Element.matches: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3
-PASS Fragment Element.matches: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div
-PASS Fragment Element.matches: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4
-PASS Fragment 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
-PASS Fragment 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
-PASS Fragment Element.matches: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p
-PASS Fragment Element.matches: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Fragment Element.matches: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~ \r
-#sibling-p3
-PASS Fragment Element.matches: General sibling combinator, whitespace before (with no refNodes): #sibling-p2 \r
-~#sibling-p3
-PASS Fragment Element.matches: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3
-PASS Fragment Element.matches: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em \r
-, \r
-#group strong
-PASS Fragment Element.matches: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em, \r
-#group strong
-PASS Fragment Element.matches: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em \r
-,#group strong
-PASS Fragment Element.matches: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong
-PASS In-document Element.matches: Attribute presence selector, matching align attribute with value (with refNode Element): .attr-presence-div1[align]
-PASS In-document Element.matches: Attribute presence selector, matching align attribute with empty value (with refNode Element): .attr-presence-div2[align]
-PASS In-document Element.matches: Attribute presence selector, matching title attribute, case insensitivity (with refNode Element): [TiTlE]
-PASS In-document Element.matches: Attribute presence selector, matching custom data-* attribute (with refNode Element): [data-attr-presence]
-PASS In-document Element.matches: Attribute presence selector, matching attribute with non-ASCII characters (with refNode Element): ul[data-中文]
-PASS In-document Element.matches: Attribute presence selector, matching option with selected attribute (with refNode Element): #attr-presence-select2 option[selected]
-PASS In-document Element.matches: Attribute presence selector, matching multiple options with selected attributes (with refNode Element): #attr-presence-select3 option[selected]
-PASS In-document Element.matches: Attribute value selector, matching align attribute with value (with refNode Element): [align="center"]
-PASS In-document Element.matches: Attribute value selector, matching align attribute with empty value (with refNode Element): [align=""]
-PASS In-document Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with refNode Element): [data-attr-value="\e9"]
-PASS In-document Element.matches: Attribute value selector, matching custom data-* attribute with escaped character (with refNode Element): [data-attr-value_foo="\e9"]
-PASS In-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']
-PASS In-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']
-PASS In-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]
-PASS In-document Element.matches: Attribute value selector, matching attribute with value using non-ASCII characters (with refNode Element): [data-attr-value=中文]
-PASS In-document Element.matches: Attribute whitespace-separated list selector, matching class attribute with value (with refNode Element): [class~="div1"]
-PASS In-document Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with refNode Element): [data-attr-whitespace~="\0000e9"]
-PASS In-document Element.matches: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with refNode Element): [data-attr-whitespace_foo~="\e9"]
-PASS In-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']
-PASS In-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']
-PASS In-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]
-PASS In-document Element.matches: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with refNode Element): [title~=中文]
-PASS In-document Element.matches: Attribute hyphen-separated list selector, matching lang attribute with exact value (with refNode Element): #attr-hyphen-div2[lang|="fr"]
-PASS In-document Element.matches: Attribute hyphen-separated list selector, matching lang attribute with partial value (with refNode Element): #attr-hyphen-div3[lang|="en"]
-PASS In-document Element.matches: Attribute begins with selector, matching href attributes beginning with specified substring (with refNode Element): a[href^="http://www"]
-PASS In-document Element.matches: Attribute begins with selector, matching lang attributes beginning with specified substring, (with refNode Element): [lang^="en-"]
-PASS In-document Element.matches: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class^=' apple']
-PASS In-document Element.matches: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class^=" apple"]
-PASS In-document Element.matches: Attribute ends with selector, matching href attributes ending with specified substring (with refNode Element): a[href$=".org"]
-PASS In-document Element.matches: Attribute ends with selector, matching lang attributes ending with specified substring, (with refNode Element): [lang$="-CH"]
-PASS In-document Element.matches: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with refNode Element): [class$='apple ']
-PASS In-document Element.matches: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with refNode Element): [class$="apple "]
-PASS In-document Element.matches: Attribute contains selector, matching href attributes beginning with specified substring (with refNode Element): a[href*="http://www"]
-PASS In-document Element.matches: Attribute contains selector, matching href attributes ending with specified substring (with refNode Element): a[href*=".org"]
-PASS In-document Element.matches: Attribute contains selector, matching href attributes containing specified substring (with refNode Element): a[href*=".example."]
-PASS In-document Element.matches: Attribute contains selector, matching lang attributes beginning with specified substring, (with refNode Element): [lang*="en-"]
-PASS In-document Element.matches: Attribute contains selector, matching lang attributes ending with specified substring, (with refNode Element): [lang*="-CH"]
-PASS In-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class*=' apple']
-PASS In-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with refNode Element): [class*='orange ']
-PASS In-document Element.matches: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with refNode Element): [class*='ple banana ora']
-PASS In-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class*=" apple"]
-PASS In-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with refNode Element): [class*="orange "]
-PASS In-document Element.matches: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with refNode Element): [class*="ple banana ora"]
-PASS In-document Element.matches: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with refNode Element): [class*= apple]
-PASS In-document Element.matches: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with refNode Element): [class*=orange ]
-PASS In-document Element.matches: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with refNode Element): [class*= banana ]
-PASS In-document Element.matches: :nth-child selector, matching the third child element (with refNode Element): :nth-child(3)
-PASS In-document Element.matches: :nth-child selector, matching every third child element (with refNode Element): li:nth-child(3n)
-PASS In-document Element.matches: :nth-child selector, matching every second child element, starting from the fourth (with refNode Element): li:nth-child(2n+4)
-PASS In-document Element.matches: :nth-child selector, matching every second child element, starting from the fourth, with whitespace (with refNode Element): li:nth-child(2n \r
-+ \r
-4)
-PASS In-document Element.matches: :nth-child selector, matching every fourth child element, starting from the third (with refNode Element): :nth-child(4n-1)
-PASS In-document Element.matches: :nth-child selector, matching every fourth child element, starting from the third, with whitespace (with refNode Element): :nth-child(4n \r
-- \r
-1)
-PASS In-document Element.matches: :nth-child selector used twice, matching (with refNode Element): :nth-child(1) :nth-child(1)
-PASS In-document Element.matches: :nth-last-child selector, matching the third last child element (with refNode Element): :nth-last-child(3)
-PASS In-document Element.matches: :nth-last-child selector, matching every third child element from the end (with refNode Element): li:nth-last-child(3n)
-PASS In-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)
-PASS In-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)
-PASS In-document Element.matches: :nth-of-type selector, matching the third em element (with refNode Element): em:nth-of-type(3)
-PASS In-document Element.matches: :nth-of-type selector, matching every second element of their type (with refNode Element): :nth-of-type(2n)
-PASS In-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)
-PASS In-document Element.matches: :nth-last-of-type selector, matching the third last em element (with refNode Element): em:nth-last-of-type(3)
-PASS In-document Element.matches: :nth-last-of-type selector, matching every second last element of their type (with refNode Element): :nth-last-of-type(2n)
-PASS In-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)
-PASS In-document Element.matches: :first-of-type selector, matching the first em element (with refNode Element): em:first-of-type
-PASS In-document Element.matches: :first-of-type selector, matching the first of every type of element (with refNode Element): :first-of-type
-PASS In-document Element.matches: :first-of-type selector, matching the first td element in each table row (with refNode Element): tr :first-of-type
-PASS In-document Element.matches: :last-of-type selector, matching the last em elemnet (with refNode Element): em:last-of-type
-PASS In-document Element.matches: :last-of-type selector, matching the last of every type of element (with refNode Element): :last-of-type
-PASS In-document Element.matches: :last-of-type selector, matching the last td element in each table row (with refNode Element): tr :last-of-type
-PASS In-document Element.matches: :first-child pseudo-class selector, matching first child div element (with refNode Element): div:first-child
-PASS In-document Element.matches: :first-child pseudo-class selector, matching first-child of multiple elements (with refNode Element): span:first-child
-PASS In-document Element.matches: :last-child pseudo-class selector, matching last child div element (with refNode Element): div:last-child
-PASS In-document Element.matches: :last-child pseudo-class selector, matching first-child of multiple elements (with refNode Element): span:last-child
-PASS In-document Element.matches: :pseudo-only-child pseudo-class selector, matching all only-child elements (with refNode Element): :only-child
-PASS In-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
-PASS In-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
-PASS In-document Element.matches: :empty pseudo-class selector, matching empty p elements (with refNode Element): p:empty
-PASS In-document Element.matches: :empty pseudo-class selector, matching all empty elements (with refNode Element): :empty
-PASS In-document Element.matches: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with refNode Element): :link, #pseudo-link :visited
-FAIL In-document Element.matches: :link and :visited pseudo-class selectors, matching link elements with href attributes (with refNode Element): :link, #head :visited assert_true: The element #pseudo-link-link1 should match the selector. expected true got false
-PASS In-document Element.matches: :lang pseudo-class selector, matching inherited language (1) (with no refNodes): #pseudo-lang-div1:lang(en)
-PASS In-document Element.matches: :lang pseudo-class selector, matching specified language with exact value (1) (with no refNodes): #pseudo-lang-div2:lang(fr)
-PASS In-document Element.matches: :lang pseudo-class selector, matching specified language with partial value (1) (with no refNodes): #pseudo-lang-div3:lang(en)
-PASS In-document Element.matches: :enabled pseudo-class selector, matching all enabled form controls (1) (with no refNodes): #pseudo-ui :enabled
-PASS In-document Element.matches: :enabled pseudo-class selector, not matching link elements (1) (with no refNodes): #pseudo-link :enabled
-PASS In-document Element.matches: :disabled pseudo-class selector, matching all disabled form controls (1) (with no refNodes): #pseudo-ui :disabled
-PASS In-document Element.matches: :disabled pseudo-class selector, not matching link elements (1) (with no refNodes): #pseudo-link :disabled
-PASS In-document Element.matches: :checked pseudo-class selector, matching checked radio buttons and checkboxes (1) (with no refNodes): #pseudo-ui :checked
-PASS In-document Element.matches: :not pseudo-class selector, matching (1) (with no refNodes): #not>:not(div)
-PASS In-document Element.matches: :not pseudo-class selector, matching (1) (with no refNodes): #not * :not(:first-child)
-PASS In-document Element.matches: Class selector, matching element with specified class (1) (with no refNodes): .class-p
-PASS In-document Element.matches: Class selector, chained, matching only elements with all specified classes (1) (with no refNodes): #class .apple.orange.banana
-PASS In-document Element.matches: Class Selector, chained, with type selector (1) (with no refNodes): div.apple.banana.orange
-PASS In-document Element.matches: Class selector, matching element with class value using non-ASCII characters (2) (with no refNodes): .台北Táiběi
-PASS In-document Element.matches: Class selector, matching multiple elements with class value using non-ASCII characters (1) (with no refNodes): .台北
-PASS In-document Element.matches: Class selector, chained, matching element with multiple class values using non-ASCII characters (2) (with no refNodes): .台北Táiběi.台北
-PASS In-document Element.matches: Class selector, matching element with class with escaped character (1) (with no refNodes): .foo\:bar
-PASS In-document Element.matches: Class selector, matching element with class with escaped character (1) (with no refNodes): .test\.foo\[5\]bar
-PASS In-document Element.matches: ID selector, matching element with specified id (1) (with no refNodes): #id #id-div1
-PASS In-document Element.matches: ID selector, chained, matching element with specified id (1) (with no refNodes): #id-div1, #id-div1
-PASS In-document Element.matches: ID selector, chained, matching element with specified id (1) (with no refNodes): #id-div1, #id-div2
-PASS In-document Element.matches: ID Selector, chained, with type selector (1) (with no refNodes): div#id-div1, div#id-div2
-PASS In-document Element.matches: ID selector, matching multiple elements with duplicate id (1) (with no refNodes): #id-li-duplicate
-PASS In-document Element.matches: ID selector, matching id value using non-ASCII characters (3) (with no refNodes): #台北Táiběi
-PASS In-document Element.matches: ID selector, matching id value using non-ASCII characters (4) (with no refNodes): #台北
-PASS In-document Element.matches: ID selector, matching id values using non-ASCII characters (2) (with no refNodes): #台北Táiběi, #台北
-PASS In-document Element.matches: Descendant combinator, matching element that is a descendant of an element with id (1) (with no refNodes): #descendant div
-PASS In-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element (1) (with no refNodes): body #descendant-div1
-PASS In-document Element.matches: Descendant combinator, matching element with id that is a descendant of an element (1) (with no refNodes): div #descendant-div1
-PASS In-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
-PASS In-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
-PASS In-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
-PASS In-document Element.matches: Descendant combinator, whitespace characters (1) (with no refNodes): #descendant \r
-#descendant-div2
-PASS In-document Element.matches: Child combinator, matching element that is a child of an element with id (1) (with no refNodes): #child>div
-PASS In-document Element.matches: Child combinator, matching element with id that is a child of an element (1) (with no refNodes): div>#child-div1
-PASS In-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
-PASS In-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
-PASS In-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
-PASS In-document Element.matches: Child combinator, surrounded by whitespace (1) (with no refNodes): #child-div1 \r
-> \r
-#child-div2
-PASS In-document Element.matches: Child combinator, whitespace after (1) (with no refNodes): #child-div1> \r
-#child-div2
-PASS In-document Element.matches: Child combinator, whitespace before (1) (with no refNodes): #child-div1 \r
->#child-div2
-PASS In-document Element.matches: Child combinator, no whitespace (1) (with no refNodes): #child-div1>#child-div2
-PASS In-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
-PASS In-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
-PASS In-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
-PASS In-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
-PASS In-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
-PASS In-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
-PASS In-document Element.matches: Adjacent sibling combinator, surrounded by whitespace (1) (with no refNodes): #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS In-document Element.matches: Adjacent sibling combinator, whitespace after (1) (with no refNodes): #adjacent-p2+ \r
-#adjacent-p3
-PASS In-document Element.matches: Adjacent sibling combinator, whitespace before (1) (with no refNodes): #adjacent-p2 \r
-+#adjacent-p3
-PASS In-document Element.matches: Adjacent sibling combinator, no whitespace (1) (with no refNodes): #adjacent-p2+#adjacent-p3
-PASS In-document Element.matches: General sibling combinator, matching element that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~div
-PASS In-document Element.matches: General sibling combinator, matching element with id that is a sibling of an element (1) (with no refNodes): div~#sibling-div4
-PASS In-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
-PASS In-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
-PASS In-document Element.matches: General sibling combinator, matching p element that is a sibling of a div element (1) (with no refNodes): #sibling div~p
-PASS In-document Element.matches: General sibling combinator, surrounded by whitespace (1) (with no refNodes): #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS In-document Element.matches: General sibling combinator, whitespace after (1) (with no refNodes): #sibling-p2~ \r
-#sibling-p3
-PASS In-document Element.matches: General sibling combinator, whitespace before (1) (with no refNodes): #sibling-p2 \r
-~#sibling-p3
-PASS In-document Element.matches: General sibling combinator, no whitespace (1) (with no refNodes): #sibling-p2~#sibling-p3
-PASS In-document Element.matches: Syntax, group of selectors separator, surrounded by whitespace (1) (with no refNodes): #group em \r
-, \r
-#group strong
-PASS In-document Element.matches: Syntax, group of selectors separator, whitespace after (1) (with no refNodes): #group em, \r
-#group strong
-PASS In-document Element.matches: Syntax, group of selectors separator, whitespace before (1) (with no refNodes): #group em \r
-,#group strong
-PASS In-document Element.matches: Syntax, group of selectors separator, no whitespace (1) (with no refNodes): #group em,#group strong
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/dom/nodes/Element-webkitMatchesSelector-expected.txt b/third_party/blink/web_tests/external/wpt/dom/nodes/Element-webkitMatchesSelector-expected.txt
deleted file mode 100644
index 25a6eceec17d20..00000000000000
--- a/third_party/blink/web_tests/external/wpt/dom/nodes/Element-webkitMatchesSelector-expected.txt
+++ /dev/null
@@ -1,745 +0,0 @@
-This is a testharness.js-based test.
-Found 669 tests; 667 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Selectors-API Level 2 Test Suite: HTML with Selectors Level 3
-PASS Document should not support webkitMatchesSelector
-PASS Detached Element supports webkitMatchesSelector
-PASS Fragment should not support webkitMatchesSelector
-PASS In-document Element supports webkitMatchesSelector
-PASS DIV Element.webkitMatchesSelector(null)
-PASS DIV Element.webkitMatchesSelector(undefined)
-PASS DIV Element.webkitMatchesSelector no parameter
-PASS NULL Element.webkitMatchesSelector(null)
-PASS NULL Element.webkitMatchesSelector(undefined)
-PASS NULL Element.webkitMatchesSelector no parameter
-PASS UNDEFINED Element.webkitMatchesSelector(null)
-PASS UNDEFINED Element.webkitMatchesSelector(undefined)
-PASS UNDEFINED Element.webkitMatchesSelector no parameter
-PASS Detached Element.webkitMatchesSelector: Empty String:
-PASS Detached Element.webkitMatchesSelector: Invalid character: [
-PASS Detached Element.webkitMatchesSelector: Invalid character: ]
-PASS Detached Element.webkitMatchesSelector: Invalid character: (
-PASS Detached Element.webkitMatchesSelector: Invalid character: )
-PASS Detached Element.webkitMatchesSelector: Invalid character: {
-PASS Detached Element.webkitMatchesSelector: Invalid character: }
-PASS Detached Element.webkitMatchesSelector: Invalid character: <
-PASS Detached Element.webkitMatchesSelector: Invalid character: >
-PASS Detached Element.webkitMatchesSelector: Invalid ID: #
-PASS Detached Element.webkitMatchesSelector: Invalid group of selectors: div,
-PASS Detached Element.webkitMatchesSelector: Invalid class: .
-PASS Detached Element.webkitMatchesSelector: Invalid class: .5cm
-PASS Detached Element.webkitMatchesSelector: Invalid class: ..test
-PASS Detached Element.webkitMatchesSelector: Invalid class: .foo..quux
-PASS Detached Element.webkitMatchesSelector: Invalid class: .bar.
-PASS Detached Element.webkitMatchesSelector: Invalid combinator: div & address, p
-PASS Detached Element.webkitMatchesSelector: Invalid combinator: div ++ address, p
-PASS Detached Element.webkitMatchesSelector: Invalid combinator: div ~~ address, p
-PASS Detached Element.webkitMatchesSelector: Invalid [att=value] selector: [*=test]
-PASS Detached Element.webkitMatchesSelector: Invalid [att=value] selector: [*|*=test]
-PASS Detached Element.webkitMatchesSelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS Detached Element.webkitMatchesSelector: Unknown pseudo-class: div:example
-PASS Detached Element.webkitMatchesSelector: Unknown pseudo-class: :example
-PASS Detached Element.webkitMatchesSelector: Unknown pseudo-class: div:linkexample
-PASS Detached Element.webkitMatchesSelector: Unknown pseudo-element: div::example
-PASS Detached Element.webkitMatchesSelector: Unknown pseudo-element: ::example
-PASS Detached Element.webkitMatchesSelector: Invalid pseudo-element: :::before
-PASS Detached Element.webkitMatchesSelector: Invalid pseudo-element: :: before
-PASS Detached Element.webkitMatchesSelector: Undeclared namespace: ns|div
-PASS Detached Element.webkitMatchesSelector: Undeclared namespace: :not(ns|div)
-PASS Detached Element.webkitMatchesSelector: Invalid namespace: ^|div
-PASS Detached Element.webkitMatchesSelector: Invalid namespace: $|div
-PASS Detached Element.webkitMatchesSelector: Relative selector: >*
-PASS In-document Element.webkitMatchesSelector: Empty String:
-PASS In-document Element.webkitMatchesSelector: Invalid character: [
-PASS In-document Element.webkitMatchesSelector: Invalid character: ]
-PASS In-document Element.webkitMatchesSelector: Invalid character: (
-PASS In-document Element.webkitMatchesSelector: Invalid character: )
-PASS In-document Element.webkitMatchesSelector: Invalid character: {
-PASS In-document Element.webkitMatchesSelector: Invalid character: }
-PASS In-document Element.webkitMatchesSelector: Invalid character: <
-PASS In-document Element.webkitMatchesSelector: Invalid character: >
-PASS In-document Element.webkitMatchesSelector: Invalid ID: #
-PASS In-document Element.webkitMatchesSelector: Invalid group of selectors: div,
-PASS In-document Element.webkitMatchesSelector: Invalid class: .
-PASS In-document Element.webkitMatchesSelector: Invalid class: .5cm
-PASS In-document Element.webkitMatchesSelector: Invalid class: ..test
-PASS In-document Element.webkitMatchesSelector: Invalid class: .foo..quux
-PASS In-document Element.webkitMatchesSelector: Invalid class: .bar.
-PASS In-document Element.webkitMatchesSelector: Invalid combinator: div & address, p
-PASS In-document Element.webkitMatchesSelector: Invalid combinator: div ++ address, p
-PASS In-document Element.webkitMatchesSelector: Invalid combinator: div ~~ address, p
-PASS In-document Element.webkitMatchesSelector: Invalid [att=value] selector: [*=test]
-PASS In-document Element.webkitMatchesSelector: Invalid [att=value] selector: [*|*=test]
-PASS In-document Element.webkitMatchesSelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS In-document Element.webkitMatchesSelector: Unknown pseudo-class: div:example
-PASS In-document Element.webkitMatchesSelector: Unknown pseudo-class: :example
-PASS In-document Element.webkitMatchesSelector: Unknown pseudo-class: div:linkexample
-PASS In-document Element.webkitMatchesSelector: Unknown pseudo-element: div::example
-PASS In-document Element.webkitMatchesSelector: Unknown pseudo-element: ::example
-PASS In-document Element.webkitMatchesSelector: Invalid pseudo-element: :::before
-PASS In-document Element.webkitMatchesSelector: Invalid pseudo-element: :: before
-PASS In-document Element.webkitMatchesSelector: Undeclared namespace: ns|div
-PASS In-document Element.webkitMatchesSelector: Undeclared namespace: :not(ns|div)
-PASS In-document Element.webkitMatchesSelector: Invalid namespace: ^|div
-PASS In-document Element.webkitMatchesSelector: Invalid namespace: $|div
-PASS In-document Element.webkitMatchesSelector: Relative selector: >*
-PASS In-document Element.webkitMatchesSelector: Type selector, matching html element (with no refNodes): html
-PASS In-document Element.webkitMatchesSelector: Type selector, matching body element (with no refNodes): body
-PASS In-document Element.webkitMatchesSelector: Universal selector, matching all elements (with no refNodes): *
-PASS In-document Element.webkitMatchesSelector: Universal selector, matching all children of element with specified ID (with no refNodes): #universal>*
-PASS In-document Element.webkitMatchesSelector: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal>*>*
-PASS In-document Element.webkitMatchesSelector: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal *
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [*|TiTlE]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center"
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo="\e9"]
-PASS In-document Element.webkitMatchesSelector: 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']
-PASS In-document Element.webkitMatchesSelector: 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']
-PASS In-document Element.webkitMatchesSelector: 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]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文]
-PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~="div1"]
-PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~="\0000e9"]
-PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~="\e9"]
-PASS In-document Element.webkitMatchesSelector: 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']
-PASS In-document Element.webkitMatchesSelector: 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']
-PASS In-document Element.webkitMatchesSelector: 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]
-PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文]
-PASS In-document Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|="fr"]
-PASS In-document Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|="en"]
-PASS In-document Element.webkitMatchesSelector: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^="http://www"]
-PASS In-document Element.webkitMatchesSelector: Attribute begins with selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-begins [lang^="en-"]
-PASS In-document Element.webkitMatchesSelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple']
-PASS In-document Element.webkitMatchesSelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=" apple"]
-PASS In-document Element.webkitMatchesSelector: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=".org"]
-PASS In-document Element.webkitMatchesSelector: Attribute ends with selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-ends [lang$="-CH"]
-PASS In-document Element.webkitMatchesSelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple ']
-PASS In-document Element.webkitMatchesSelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$="apple "]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*="http://www"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=".org"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=".example."]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-contains [lang*="en-"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-contains [lang*="-CH"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple']
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange ']
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora']
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=" apple"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*="orange "]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*="ple banana ora"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ]
-PASS In-document Element.webkitMatchesSelector: :root pseudo-class selector, matching document root element (with no refNodes): :root
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3)
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n)
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4)
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1)
-PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3)
-PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n)
-PASS In-document Element.webkitMatchesSelector: :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)
-PASS In-document Element.webkitMatchesSelector: :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)
-PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3)
-PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n)
-PASS In-document Element.webkitMatchesSelector: :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)
-PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching the third last em element (with no refNodes): #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type (with no refNodes): #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS In-document Element.webkitMatchesSelector: :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)
-PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type
-PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type
-PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first td element in each table row (with no refNodes): #pseudo-nth-table1 tr :first-of-type
-PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type
-PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type
-PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last td element in each table row (with no refNodes): #pseudo-nth-table1 tr :last-of-type
-PASS In-document Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child
-PASS In-document Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child
-PASS In-document Element.webkitMatchesSelector: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child
-PASS In-document Element.webkitMatchesSelector: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child
-PASS In-document Element.webkitMatchesSelector: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child
-PASS In-document Element.webkitMatchesSelector: :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
-PASS In-document Element.webkitMatchesSelector: :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
-PASS In-document Element.webkitMatchesSelector: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty
-PASS In-document Element.webkitMatchesSelector: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty
-PASS In-document Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with no refNodes): #pseudo-link :link, #pseudo-link :visited
-FAIL In-document Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching link elements with href attributes (with no refNodes): #head :link, #head :visited assert_true: The element #pseudo-link-link1 should match the selector. expected true got false
-PASS In-document Element.webkitMatchesSelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier (with no refNodes): :target
-PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching inherited language (with no refNodes): #pseudo-lang-div1:lang(en)
-PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)
-PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)
-PASS In-document Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled
-PASS In-document Element.webkitMatchesSelector: :enabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :enabled
-PASS In-document Element.webkitMatchesSelector: :disabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled
-PASS In-document Element.webkitMatchesSelector: :disabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :disabled
-PASS In-document Element.webkitMatchesSelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked
-PASS In-document Element.webkitMatchesSelector: :not pseudo-class selector, matching (with no refNodes): #not>:not(div)
-PASS In-document Element.webkitMatchesSelector: :not pseudo-class selector, matching (with no refNodes): #not * :not(:first-child)
-PASS In-document Element.webkitMatchesSelector: :not pseudo-class selector argument surrounded by spaces, matching (with no refNodes): #not>:not( div )
-PASS In-document Element.webkitMatchesSelector: Class selector, matching element with specified class (with no refNodes): .class-p
-PASS In-document Element.webkitMatchesSelector: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana
-PASS In-document Element.webkitMatchesSelector: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange
-PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi
-PASS In-document Element.webkitMatchesSelector: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北
-PASS In-document Element.webkitMatchesSelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北
-PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar
-PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar
-PASS In-document Element.webkitMatchesSelector: ID selector, matching element with specified id (with no refNodes): #id #id-div1
-PASS In-document Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1
-PASS In-document Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2
-PASS In-document Element.webkitMatchesSelector: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2
-PASS In-document Element.webkitMatchesSelector: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate
-PASS In-document Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi
-PASS In-document Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北
-PASS In-document Element.webkitMatchesSelector: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): body #descendant-div1
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, whitespace characters (with no refNodes): #descendant \r
-#descendant-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child>#child-div1
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1>.child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1>.child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, surrounded by whitespace (with no refNodes): #child-div1 \r
-> \r
-#child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, whitespace after (with no refNodes): #child-div1> \r
-#child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, whitespace before (with no refNodes): #child-div1 \r
->#child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, no whitespace (with no refNodes): #child-div1>#child-div2
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+#adjacent-div4
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+.adjacent-div4
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (with no refNodes): .adjacent-div2+.adjacent-div4
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+ \r
-#adjacent-p3
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2 \r
-+#adjacent-p3
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element with id (with no refNodes): #sibling-div2~#sibling-div4
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with class that is a sibling of an element with id (with no refNodes): #sibling-div2~.sibling-div
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~ \r
-#sibling-p3
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, whitespace before (with no refNodes): #sibling-p2 \r
-~#sibling-p3
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3
-PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em \r
-, \r
-#group strong
-PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em, \r
-#group strong
-PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em \r
-,#group strong
-PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong
-PASS Detached Element.webkitMatchesSelector: Universal selector, matching all elements (with no refNodes): *
-PASS Detached Element.webkitMatchesSelector: Universal selector, matching all children of element with specified ID (with no refNodes): #universal>*
-PASS Detached Element.webkitMatchesSelector: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal>*>*
-PASS Detached Element.webkitMatchesSelector: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal *
-PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align]
-PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align]
-PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [*|TiTlE]
-PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence]
-PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文]
-PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected]
-PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected]
-PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"]
-PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center"
-PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""]
-PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"]
-PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo="\e9"]
-PASS Detached Element.webkitMatchesSelector: 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']
-PASS Detached Element.webkitMatchesSelector: 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']
-PASS Detached Element.webkitMatchesSelector: 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]
-PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文]
-PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~="div1"]
-PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~="\0000e9"]
-PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~="\e9"]
-PASS Detached Element.webkitMatchesSelector: 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']
-PASS Detached Element.webkitMatchesSelector: 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']
-PASS Detached Element.webkitMatchesSelector: 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]
-PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文]
-PASS Detached Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|="fr"]
-PASS Detached Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|="en"]
-PASS Detached Element.webkitMatchesSelector: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^="http://www"]
-PASS Detached Element.webkitMatchesSelector: Attribute begins with selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-begins [lang^="en-"]
-PASS Detached Element.webkitMatchesSelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple']
-PASS Detached Element.webkitMatchesSelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=" apple"]
-PASS Detached Element.webkitMatchesSelector: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=".org"]
-PASS Detached Element.webkitMatchesSelector: Attribute ends with selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-ends [lang$="-CH"]
-PASS Detached Element.webkitMatchesSelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple ']
-PASS Detached Element.webkitMatchesSelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$="apple "]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*="http://www"]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=".org"]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=".example."]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-contains [lang*="en-"]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-contains [lang*="-CH"]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple']
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange ']
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora']
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=" apple"]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*="orange "]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*="ple banana ora"]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ]
-PASS Detached Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ]
-PASS Detached Element.webkitMatchesSelector: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3)
-PASS Detached Element.webkitMatchesSelector: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n)
-PASS Detached Element.webkitMatchesSelector: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4)
-PASS Detached Element.webkitMatchesSelector: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1)
-PASS Detached Element.webkitMatchesSelector: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3)
-PASS Detached Element.webkitMatchesSelector: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n)
-PASS Detached Element.webkitMatchesSelector: :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)
-PASS Detached Element.webkitMatchesSelector: :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)
-PASS Detached Element.webkitMatchesSelector: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3)
-PASS Detached Element.webkitMatchesSelector: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n)
-PASS Detached Element.webkitMatchesSelector: :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)
-PASS Detached Element.webkitMatchesSelector: :nth-last-of-type selector, matching the third last em element (with no refNodes): #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Detached Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type (with no refNodes): #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Detached Element.webkitMatchesSelector: :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)
-PASS Detached Element.webkitMatchesSelector: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type
-PASS Detached Element.webkitMatchesSelector: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type
-PASS Detached Element.webkitMatchesSelector: :first-of-type selector, matching the first td element in each table row (with no refNodes): #pseudo-nth-table1 tr :first-of-type
-PASS Detached Element.webkitMatchesSelector: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type
-PASS Detached Element.webkitMatchesSelector: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type
-PASS Detached Element.webkitMatchesSelector: :last-of-type selector, matching the last td element in each table row (with no refNodes): #pseudo-nth-table1 tr :last-of-type
-PASS Detached Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child
-PASS Detached Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child
-PASS Detached Element.webkitMatchesSelector: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child
-PASS Detached Element.webkitMatchesSelector: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child
-PASS Detached Element.webkitMatchesSelector: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child
-PASS Detached Element.webkitMatchesSelector: :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
-PASS Detached Element.webkitMatchesSelector: :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
-PASS Detached Element.webkitMatchesSelector: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty
-PASS Detached Element.webkitMatchesSelector: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty
-PASS Detached Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with no refNodes): #pseudo-link :link, #pseudo-link :visited
-PASS Detached Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)
-PASS Detached Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)
-PASS Detached Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled
-PASS Detached Element.webkitMatchesSelector: :enabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :enabled
-PASS Detached Element.webkitMatchesSelector: :disabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled
-PASS Detached Element.webkitMatchesSelector: :disabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :disabled
-PASS Detached Element.webkitMatchesSelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked
-PASS Detached Element.webkitMatchesSelector: :not pseudo-class selector, matching (with no refNodes): #not>:not(div)
-PASS Detached Element.webkitMatchesSelector: :not pseudo-class selector, matching (with no refNodes): #not * :not(:first-child)
-PASS Detached Element.webkitMatchesSelector: :not pseudo-class selector argument surrounded by spaces, matching (with no refNodes): #not>:not( div )
-PASS Detached Element.webkitMatchesSelector: Class selector, matching element with specified class (with no refNodes): .class-p
-PASS Detached Element.webkitMatchesSelector: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana
-PASS Detached Element.webkitMatchesSelector: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange
-PASS Detached Element.webkitMatchesSelector: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi
-PASS Detached Element.webkitMatchesSelector: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北
-PASS Detached Element.webkitMatchesSelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北
-PASS Detached Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar
-PASS Detached Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar
-PASS Detached Element.webkitMatchesSelector: ID selector, matching element with specified id (with no refNodes): #id #id-div1
-PASS Detached Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1
-PASS Detached Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2
-PASS Detached Element.webkitMatchesSelector: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2
-PASS Detached Element.webkitMatchesSelector: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate
-PASS Detached Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi
-PASS Detached Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北
-PASS Detached Element.webkitMatchesSelector: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北
-PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div
-PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1
-PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2
-PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2
-PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3
-PASS Detached Element.webkitMatchesSelector: Descendant combinator, whitespace characters (with no refNodes): #descendant \r
-#descendant-div2
-PASS Detached Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
-PASS Detached Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
-PASS Detached Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child>#child-div1
-PASS Detached Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1>.child-div2
-PASS Detached Element.webkitMatchesSelector: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1>.child-div2
-PASS Detached Element.webkitMatchesSelector: Child combinator, surrounded by whitespace (with no refNodes): #child-div1 \r
-> \r
-#child-div2
-PASS Detached Element.webkitMatchesSelector: Child combinator, whitespace after (with no refNodes): #child-div1> \r
-#child-div2
-PASS Detached Element.webkitMatchesSelector: Child combinator, whitespace before (with no refNodes): #child-div1 \r
->#child-div2
-PASS Detached Element.webkitMatchesSelector: Child combinator, no whitespace (with no refNodes): #child-div1>#child-div2
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+#adjacent-div4
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+.adjacent-div4
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (with no refNodes): .adjacent-div2+.adjacent-div4
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+ \r
-#adjacent-p3
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2 \r
-+#adjacent-p3
-PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3
-PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div
-PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4
-PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element with id (with no refNodes): #sibling-div2~#sibling-div4
-PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching element with class that is a sibling of an element with id (with no refNodes): #sibling-div2~.sibling-div
-PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p
-PASS Detached Element.webkitMatchesSelector: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Detached Element.webkitMatchesSelector: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~ \r
-#sibling-p3
-PASS Detached Element.webkitMatchesSelector: General sibling combinator, whitespace before (with no refNodes): #sibling-p2 \r
-~#sibling-p3
-PASS Detached Element.webkitMatchesSelector: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3
-PASS Detached Element.webkitMatchesSelector: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em \r
-, \r
-#group strong
-PASS Detached Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em, \r
-#group strong
-PASS Detached Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em \r
-,#group strong
-PASS Detached Element.webkitMatchesSelector: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong
-PASS Fragment Element.webkitMatchesSelector: Universal selector, matching all elements (with no refNodes): *
-PASS Fragment Element.webkitMatchesSelector: Universal selector, matching all children of element with specified ID (with no refNodes): #universal>*
-PASS Fragment Element.webkitMatchesSelector: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal>*>*
-PASS Fragment Element.webkitMatchesSelector: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal *
-PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align]
-PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align]
-PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [*|TiTlE]
-PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence]
-PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文]
-PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected]
-PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected]
-PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"]
-PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center"
-PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""]
-PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"]
-PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo="\e9"]
-PASS Fragment Element.webkitMatchesSelector: 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']
-PASS Fragment Element.webkitMatchesSelector: 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']
-PASS Fragment Element.webkitMatchesSelector: 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]
-PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文]
-PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~="div1"]
-PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~="\0000e9"]
-PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~="\e9"]
-PASS Fragment Element.webkitMatchesSelector: 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']
-PASS Fragment Element.webkitMatchesSelector: 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']
-PASS Fragment Element.webkitMatchesSelector: 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]
-PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文]
-PASS Fragment Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|="fr"]
-PASS Fragment Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|="en"]
-PASS Fragment Element.webkitMatchesSelector: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^="http://www"]
-PASS Fragment Element.webkitMatchesSelector: Attribute begins with selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-begins [lang^="en-"]
-PASS Fragment Element.webkitMatchesSelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple']
-PASS Fragment Element.webkitMatchesSelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=" apple"]
-PASS Fragment Element.webkitMatchesSelector: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=".org"]
-PASS Fragment Element.webkitMatchesSelector: Attribute ends with selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-ends [lang$="-CH"]
-PASS Fragment Element.webkitMatchesSelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple ']
-PASS Fragment Element.webkitMatchesSelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$="apple "]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*="http://www"]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=".org"]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=".example."]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes beginning with specified substring, (with no refNodes): #attr-contains [lang*="en-"]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes ending with specified substring, (with no refNodes): #attr-contains [lang*="-CH"]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple']
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange ']
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora']
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=" apple"]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*="orange "]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*="ple banana ora"]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ]
-PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ]
-PASS Fragment Element.webkitMatchesSelector: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3)
-PASS Fragment Element.webkitMatchesSelector: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n)
-PASS Fragment Element.webkitMatchesSelector: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4)
-PASS Fragment Element.webkitMatchesSelector: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1)
-PASS Fragment Element.webkitMatchesSelector: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3)
-PASS Fragment Element.webkitMatchesSelector: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n)
-PASS Fragment Element.webkitMatchesSelector: :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)
-PASS Fragment Element.webkitMatchesSelector: :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)
-PASS Fragment Element.webkitMatchesSelector: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3)
-PASS Fragment Element.webkitMatchesSelector: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n)
-PASS Fragment Element.webkitMatchesSelector: :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)
-PASS Fragment Element.webkitMatchesSelector: :nth-last-of-type selector, matching the third last em element (with no refNodes): #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Fragment Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type (with no refNodes): #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Fragment Element.webkitMatchesSelector: :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)
-PASS Fragment Element.webkitMatchesSelector: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type
-PASS Fragment Element.webkitMatchesSelector: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type
-PASS Fragment Element.webkitMatchesSelector: :first-of-type selector, matching the first td element in each table row (with no refNodes): #pseudo-nth-table1 tr :first-of-type
-PASS Fragment Element.webkitMatchesSelector: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type
-PASS Fragment Element.webkitMatchesSelector: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type
-PASS Fragment Element.webkitMatchesSelector: :last-of-type selector, matching the last td element in each table row (with no refNodes): #pseudo-nth-table1 tr :last-of-type
-PASS Fragment Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child
-PASS Fragment Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child
-PASS Fragment Element.webkitMatchesSelector: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child
-PASS Fragment Element.webkitMatchesSelector: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child
-PASS Fragment Element.webkitMatchesSelector: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child
-PASS Fragment Element.webkitMatchesSelector: :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
-PASS Fragment Element.webkitMatchesSelector: :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
-PASS Fragment Element.webkitMatchesSelector: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty
-PASS Fragment Element.webkitMatchesSelector: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty
-PASS Fragment Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with no refNodes): #pseudo-link :link, #pseudo-link :visited
-PASS Fragment Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)
-PASS Fragment Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)
-PASS Fragment Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled
-PASS Fragment Element.webkitMatchesSelector: :enabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :enabled
-PASS Fragment Element.webkitMatchesSelector: :disabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled
-PASS Fragment Element.webkitMatchesSelector: :disabled pseudo-class selector, not matching link elements (with no refNodes): #pseudo-link :disabled
-PASS Fragment Element.webkitMatchesSelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked
-PASS Fragment Element.webkitMatchesSelector: :not pseudo-class selector, matching (with no refNodes): #not>:not(div)
-PASS Fragment Element.webkitMatchesSelector: :not pseudo-class selector, matching (with no refNodes): #not * :not(:first-child)
-PASS Fragment Element.webkitMatchesSelector: :not pseudo-class selector argument surrounded by spaces, matching (with no refNodes): #not>:not( div )
-PASS Fragment Element.webkitMatchesSelector: Class selector, matching element with specified class (with no refNodes): .class-p
-PASS Fragment Element.webkitMatchesSelector: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana
-PASS Fragment Element.webkitMatchesSelector: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange
-PASS Fragment Element.webkitMatchesSelector: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi
-PASS Fragment Element.webkitMatchesSelector: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北
-PASS Fragment Element.webkitMatchesSelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北
-PASS Fragment Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar
-PASS Fragment Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar
-PASS Fragment Element.webkitMatchesSelector: ID selector, matching element with specified id (with no refNodes): #id #id-div1
-PASS Fragment Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1
-PASS Fragment Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2
-PASS Fragment Element.webkitMatchesSelector: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2
-PASS Fragment Element.webkitMatchesSelector: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate
-PASS Fragment Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi
-PASS Fragment Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北
-PASS Fragment Element.webkitMatchesSelector: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北
-PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div
-PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1
-PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2
-PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2
-PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3
-PASS Fragment Element.webkitMatchesSelector: Descendant combinator, whitespace characters (with no refNodes): #descendant \r
-#descendant-div2
-PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
-PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
-PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child>#child-div1
-PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1>.child-div2
-PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1>.child-div2
-PASS Fragment Element.webkitMatchesSelector: Child combinator, surrounded by whitespace (with no refNodes): #child-div1 \r
-> \r
-#child-div2
-PASS Fragment Element.webkitMatchesSelector: Child combinator, whitespace after (with no refNodes): #child-div1> \r
-#child-div2
-PASS Fragment Element.webkitMatchesSelector: Child combinator, whitespace before (with no refNodes): #child-div1 \r
->#child-div2
-PASS Fragment Element.webkitMatchesSelector: Child combinator, no whitespace (with no refNodes): #child-div1>#child-div2
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+#adjacent-div4
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+.adjacent-div4
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (with no refNodes): .adjacent-div2+.adjacent-div4
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+ \r
-#adjacent-p3
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2 \r
-+#adjacent-p3
-PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3
-PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div
-PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4
-PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element with id (with no refNodes): #sibling-div2~#sibling-div4
-PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching element with class that is a sibling of an element with id (with no refNodes): #sibling-div2~.sibling-div
-PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p
-PASS Fragment Element.webkitMatchesSelector: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Fragment Element.webkitMatchesSelector: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~ \r
-#sibling-p3
-PASS Fragment Element.webkitMatchesSelector: General sibling combinator, whitespace before (with no refNodes): #sibling-p2 \r
-~#sibling-p3
-PASS Fragment Element.webkitMatchesSelector: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3
-PASS Fragment Element.webkitMatchesSelector: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em \r
-, \r
-#group strong
-PASS Fragment Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em, \r
-#group strong
-PASS Fragment Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em \r
-,#group strong
-PASS Fragment Element.webkitMatchesSelector: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with value (with refNode Element): .attr-presence-div1[align]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with empty value (with refNode Element): .attr-presence-div2[align]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching title attribute, case insensitivity (with refNode Element): [TiTlE]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching custom data-* attribute (with refNode Element): [data-attr-presence]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching attribute with non-ASCII characters (with refNode Element): ul[data-中文]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching option with selected attribute (with refNode Element): #attr-presence-select2 option[selected]
-PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with refNode Element): #attr-presence-select3 option[selected]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with refNode Element): [align="center"]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with refNode Element): [align=""]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with refNode Element): [data-attr-value="\e9"]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with escaped character (with refNode Element): [data-attr-value_foo="\e9"]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes (with refNode Element): input[type='hidden'],#attr-value input[type='radio']
-PASS In-document Element.webkitMatchesSelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes (with refNode Element): input[type="hidden"],#attr-value input[type='radio']
-PASS In-document Element.webkitMatchesSelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes (with refNode Element): input[type=hidden],#attr-value input[type=radio]
-PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching attribute with value using non-ASCII characters (with refNode Element): [data-attr-value=中文]
-PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching class attribute with value (with refNode Element): [class~="div1"]
-PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with refNode Element): [data-attr-whitespace~="\0000e9"]
-PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with refNode Element): [data-attr-whitespace_foo~="\e9"]
-PASS In-document Element.webkitMatchesSelector: 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']
-PASS In-document Element.webkitMatchesSelector: 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']
-PASS In-document Element.webkitMatchesSelector: 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]
-PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with refNode Element): [title~=中文]
-PASS In-document Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with exact value (with refNode Element): #attr-hyphen-div2[lang|="fr"]
-PASS In-document Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with partial value (with refNode Element): #attr-hyphen-div3[lang|="en"]
-PASS In-document Element.webkitMatchesSelector: Attribute begins with selector, matching href attributes beginning with specified substring (with refNode Element): a[href^="http://www"]
-PASS In-document Element.webkitMatchesSelector: Attribute begins with selector, matching lang attributes beginning with specified substring, (with refNode Element): [lang^="en-"]
-PASS In-document Element.webkitMatchesSelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class^=' apple']
-PASS In-document Element.webkitMatchesSelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class^=" apple"]
-PASS In-document Element.webkitMatchesSelector: Attribute ends with selector, matching href attributes ending with specified substring (with refNode Element): a[href$=".org"]
-PASS In-document Element.webkitMatchesSelector: Attribute ends with selector, matching lang attributes ending with specified substring, (with refNode Element): [lang$="-CH"]
-PASS In-document Element.webkitMatchesSelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with refNode Element): [class$='apple ']
-PASS In-document Element.webkitMatchesSelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with refNode Element): [class$="apple "]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes beginning with specified substring (with refNode Element): a[href*="http://www"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes ending with specified substring (with refNode Element): a[href*=".org"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes containing specified substring (with refNode Element): a[href*=".example."]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes beginning with specified substring, (with refNode Element): [lang*="en-"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes ending with specified substring, (with refNode Element): [lang*="-CH"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class*=' apple']
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with refNode Element): [class*='orange ']
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with refNode Element): [class*='ple banana ora']
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class*=" apple"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with refNode Element): [class*="orange "]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with refNode Element): [class*="ple banana ora"]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with refNode Element): [class*= apple]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with refNode Element): [class*=orange ]
-PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with refNode Element): [class*= banana ]
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching the third child element (with refNode Element): :nth-child(3)
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every third child element (with refNode Element): li:nth-child(3n)
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every second child element, starting from the fourth (with refNode Element): li:nth-child(2n+4)
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every second child element, starting from the fourth, with whitespace (with refNode Element): li:nth-child(2n \r
-+ \r
-4)
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every fourth child element, starting from the third (with refNode Element): :nth-child(4n-1)
-PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every fourth child element, starting from the third, with whitespace (with refNode Element): :nth-child(4n \r
-- \r
-1)
-PASS In-document Element.webkitMatchesSelector: :nth-child selector used twice, matching (with refNode Element): :nth-child(1) :nth-child(1)
-PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching the third last child element (with refNode Element): :nth-last-child(3)
-PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching every third child element from the end (with refNode Element): li:nth-last-child(3n)
-PASS In-document Element.webkitMatchesSelector: :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)
-PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last (with refNode Element): :nth-last-child(4n-1)
-PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching the third em element (with refNode Element): em:nth-of-type(3)
-PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching every second element of their type (with refNode Element): :nth-of-type(2n)
-PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first (with refNode Element): span:nth-of-type(2n-1)
-PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching the third last em element (with refNode Element): em:nth-last-of-type(3)
-PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type (with refNode Element): :nth-last-of-type(2n)
-PASS In-document Element.webkitMatchesSelector: :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)
-PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first em element (with refNode Element): em:first-of-type
-PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first of every type of element (with refNode Element): :first-of-type
-PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first td element in each table row (with refNode Element): tr :first-of-type
-PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last em elemnet (with refNode Element): em:last-of-type
-PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last of every type of element (with refNode Element): :last-of-type
-PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last td element in each table row (with refNode Element): tr :last-of-type
-PASS In-document Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first child div element (with refNode Element): div:first-child
-PASS In-document Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first-child of multiple elements (with refNode Element): span:first-child
-PASS In-document Element.webkitMatchesSelector: :last-child pseudo-class selector, matching last child div element (with refNode Element): div:last-child
-PASS In-document Element.webkitMatchesSelector: :last-child pseudo-class selector, matching first-child of multiple elements (with refNode Element): span:last-child
-PASS In-document Element.webkitMatchesSelector: :pseudo-only-child pseudo-class selector, matching all only-child elements (with refNode Element): :only-child
-PASS In-document Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type (with refNode Element): :only-of-type
-PASS In-document Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type (with refNode Element): em:only-of-type
-PASS In-document Element.webkitMatchesSelector: :empty pseudo-class selector, matching empty p elements (with refNode Element): p:empty
-PASS In-document Element.webkitMatchesSelector: :empty pseudo-class selector, matching all empty elements (with refNode Element): :empty
-PASS In-document Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with refNode Element): :link, #pseudo-link :visited
-FAIL In-document Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching link elements with href attributes (with refNode Element): :link, #head :visited assert_true: The element #pseudo-link-link1 should match the selector. expected true got false
-PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching inherited language (1) (with no refNodes): #pseudo-lang-div1:lang(en)
-PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with exact value (1) (with no refNodes): #pseudo-lang-div2:lang(fr)
-PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with partial value (1) (with no refNodes): #pseudo-lang-div3:lang(en)
-PASS In-document Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all enabled form controls (1) (with no refNodes): #pseudo-ui :enabled
-PASS In-document Element.webkitMatchesSelector: :enabled pseudo-class selector, not matching link elements (1) (with no refNodes): #pseudo-link :enabled
-PASS In-document Element.webkitMatchesSelector: :disabled pseudo-class selector, matching all disabled form controls (1) (with no refNodes): #pseudo-ui :disabled
-PASS In-document Element.webkitMatchesSelector: :disabled pseudo-class selector, not matching link elements (1) (with no refNodes): #pseudo-link :disabled
-PASS In-document Element.webkitMatchesSelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes (1) (with no refNodes): #pseudo-ui :checked
-PASS In-document Element.webkitMatchesSelector: :not pseudo-class selector, matching (1) (with no refNodes): #not>:not(div)
-PASS In-document Element.webkitMatchesSelector: :not pseudo-class selector, matching (1) (with no refNodes): #not * :not(:first-child)
-PASS In-document Element.webkitMatchesSelector: Class selector, matching element with specified class (1) (with no refNodes): .class-p
-PASS In-document Element.webkitMatchesSelector: Class selector, chained, matching only elements with all specified classes (1) (with no refNodes): #class .apple.orange.banana
-PASS In-document Element.webkitMatchesSelector: Class Selector, chained, with type selector (1) (with no refNodes): div.apple.banana.orange
-PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class value using non-ASCII characters (2) (with no refNodes): .台北Táiběi
-PASS In-document Element.webkitMatchesSelector: Class selector, matching multiple elements with class value using non-ASCII characters (1) (with no refNodes): .台北
-PASS In-document Element.webkitMatchesSelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (2) (with no refNodes): .台北Táiběi.台北
-PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (1) (with no refNodes): .foo\:bar
-PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (1) (with no refNodes): .test\.foo\[5\]bar
-PASS In-document Element.webkitMatchesSelector: ID selector, matching element with specified id (1) (with no refNodes): #id #id-div1
-PASS In-document Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (1) (with no refNodes): #id-div1, #id-div1
-PASS In-document Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (1) (with no refNodes): #id-div1, #id-div2
-PASS In-document Element.webkitMatchesSelector: ID Selector, chained, with type selector (1) (with no refNodes): div#id-div1, div#id-div2
-PASS In-document Element.webkitMatchesSelector: ID selector, matching multiple elements with duplicate id (1) (with no refNodes): #id-li-duplicate
-PASS In-document Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (3) (with no refNodes): #台北Táiběi
-PASS In-document Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (4) (with no refNodes): #台北
-PASS In-document Element.webkitMatchesSelector: ID selector, matching id values using non-ASCII characters (2) (with no refNodes): #台北Táiběi, #台北
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element that is a descendant of an element with id (1) (with no refNodes): #descendant div
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (1) (with no refNodes): body #descendant-div1
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (1) (with no refNodes): div #descendant-div1
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant #descendant-div2
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant .descendant-div2
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1 .descendant-div3
-PASS In-document Element.webkitMatchesSelector: Descendant combinator, whitespace characters (1) (with no refNodes): #descendant \r
-#descendant-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (1) (with no refNodes): #child>div
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (1) (with no refNodes): div>#child-div1
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with id (1) (with no refNodes): #child>#child-div1
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with class (1) (with no refNodes): #child-div1>.child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with class that is a child of an element with class (1) (with no refNodes): .child-div1>.child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, surrounded by whitespace (1) (with no refNodes): #child-div1 \r
-> \r
-#child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, whitespace after (1) (with no refNodes): #child-div1> \r
-#child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, whitespace before (1) (with no refNodes): #child-div1 \r
->#child-div2
-PASS In-document Element.webkitMatchesSelector: Child combinator, no whitespace (1) (with no refNodes): #child-div1>#child-div2
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (1) (with no refNodes): #adjacent-div2+div
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (1) (with no refNodes): div+#adjacent-div4
-PASS In-document Element.webkitMatchesSelector: 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
-PASS In-document Element.webkitMatchesSelector: 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
-PASS In-document Element.webkitMatchesSelector: 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
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (1) (with no refNodes): #adjacent div+p
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, surrounded by whitespace (1) (with no refNodes): #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace after (1) (with no refNodes): #adjacent-p2+ \r
-#adjacent-p3
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace before (1) (with no refNodes): #adjacent-p2 \r
-+#adjacent-p3
-PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, no whitespace (1) (with no refNodes): #adjacent-p2+#adjacent-p3
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~div
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element (1) (with no refNodes): div~#sibling-div4
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~#sibling-div4
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with class that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~.sibling-div
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching p element that is a sibling of a div element (1) (with no refNodes): #sibling div~p
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, surrounded by whitespace (1) (with no refNodes): #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, whitespace after (1) (with no refNodes): #sibling-p2~ \r
-#sibling-p3
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, whitespace before (1) (with no refNodes): #sibling-p2 \r
-~#sibling-p3
-PASS In-document Element.webkitMatchesSelector: General sibling combinator, no whitespace (1) (with no refNodes): #sibling-p2~#sibling-p3
-PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, surrounded by whitespace (1) (with no refNodes): #group em \r
-, \r
-#group strong
-PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace after (1) (with no refNodes): #group em, \r
-#group strong
-PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace before (1) (with no refNodes): #group em \r
-,#group strong
-PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, no whitespace (1) (with no refNodes): #group em,#group strong
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-All-expected.txt b/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-All-expected.txt
deleted file mode 100644
index 898e01c1458a5f..00000000000000
--- a/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-All-expected.txt
+++ /dev/null
@@ -1,2115 +0,0 @@
-This is a testharness.js-based test.
-Found 1975 tests; 1973 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Selectors-API Test Suite: HTML
-PASS Document supports querySelector
-PASS Document supports querySelectorAll
-PASS Document.querySelectorAll returns NodeList instance
-PASS Detached Element supports querySelector
-PASS Detached Element supports querySelectorAll
-PASS Detached Element.querySelectorAll returns NodeList instance
-PASS Fragment supports querySelector
-PASS Fragment supports querySelectorAll
-PASS Fragment.querySelectorAll returns NodeList instance
-PASS In-document Element supports querySelector
-PASS In-document Element supports querySelectorAll
-PASS In-document Element.querySelectorAll returns NodeList instance
-PASS Document.querySelectorAll null
-PASS Document.querySelectorAll undefined
-PASS Document.querySelectorAll no parameter
-PASS Document.querySelector null
-PASS Document.querySelector undefined
-PASS Document.querySelector no parameter
-PASS Document.querySelectorAll tree order
-PASS Detached Element.querySelectorAll null
-PASS Detached Element.querySelectorAll undefined
-PASS Detached Element.querySelectorAll no parameter
-PASS Detached Element.querySelector null
-PASS Detached Element.querySelector undefined
-PASS Detached Element.querySelector no parameter
-PASS Detached Element.querySelectorAll tree order
-PASS Fragment.querySelectorAll null
-PASS Fragment.querySelectorAll undefined
-PASS Fragment.querySelectorAll no parameter
-PASS Fragment.querySelector null
-PASS Fragment.querySelector undefined
-PASS Fragment.querySelector no parameter
-PASS Fragment.querySelectorAll tree order
-PASS In-document Element.querySelectorAll null
-PASS In-document Element.querySelectorAll undefined
-PASS In-document Element.querySelectorAll no parameter
-PASS In-document Element.querySelector null
-PASS In-document Element.querySelector undefined
-PASS In-document Element.querySelector no parameter
-PASS In-document Element.querySelectorAll tree order
-PASS Document: static NodeList
-PASS Document: new NodeList
-PASS Detached Element: static NodeList
-PASS Detached Element: new NodeList
-PASS Fragment: static NodeList
-PASS Fragment: new NodeList
-PASS In-document Element: static NodeList
-PASS In-document Element: new NodeList
-PASS Document.querySelector: Empty String:
-PASS Document.querySelectorAll: Empty String:
-PASS Document.querySelector: Invalid character: [
-PASS Document.querySelectorAll: Invalid character: [
-PASS Document.querySelector: Invalid character: ]
-PASS Document.querySelectorAll: Invalid character: ]
-PASS Document.querySelector: Invalid character: (
-PASS Document.querySelectorAll: Invalid character: (
-PASS Document.querySelector: Invalid character: )
-PASS Document.querySelectorAll: Invalid character: )
-PASS Document.querySelector: Invalid character: {
-PASS Document.querySelectorAll: Invalid character: {
-PASS Document.querySelector: Invalid character: }
-PASS Document.querySelectorAll: Invalid character: }
-PASS Document.querySelector: Invalid character: <
-PASS Document.querySelectorAll: Invalid character: <
-PASS Document.querySelector: Invalid character: >
-PASS Document.querySelectorAll: Invalid character: >
-PASS Document.querySelector: Invalid ID: #
-PASS Document.querySelectorAll: Invalid ID: #
-PASS Document.querySelector: Invalid group of selectors: div,
-PASS Document.querySelectorAll: Invalid group of selectors: div,
-PASS Document.querySelector: Invalid class: .
-PASS Document.querySelectorAll: Invalid class: .
-PASS Document.querySelector: Invalid class: .5cm
-PASS Document.querySelectorAll: Invalid class: .5cm
-PASS Document.querySelector: Invalid class: ..test
-PASS Document.querySelectorAll: Invalid class: ..test
-PASS Document.querySelector: Invalid class: .foo..quux
-PASS Document.querySelectorAll: Invalid class: .foo..quux
-PASS Document.querySelector: Invalid class: .bar.
-PASS Document.querySelectorAll: Invalid class: .bar.
-PASS Document.querySelector: Invalid combinator: div & address, p
-PASS Document.querySelectorAll: Invalid combinator: div & address, p
-PASS Document.querySelector: Invalid combinator: div ++ address, p
-PASS Document.querySelectorAll: Invalid combinator: div ++ address, p
-PASS Document.querySelector: Invalid combinator: div ~~ address, p
-PASS Document.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS Document.querySelector: Invalid [att=value] selector: [*=test]
-PASS Document.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS Document.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS Document.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS Document.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS Document.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS Document.querySelector: Unknown pseudo-class: div:example
-PASS Document.querySelectorAll: Unknown pseudo-class: div:example
-PASS Document.querySelector: Unknown pseudo-class: :example
-PASS Document.querySelectorAll: Unknown pseudo-class: :example
-PASS Document.querySelector: Unknown pseudo-class: div:linkexample
-PASS Document.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS Document.querySelector: Unknown pseudo-element: div::example
-PASS Document.querySelectorAll: Unknown pseudo-element: div::example
-PASS Document.querySelector: Unknown pseudo-element: ::example
-PASS Document.querySelectorAll: Unknown pseudo-element: ::example
-PASS Document.querySelector: Invalid pseudo-element: :::before
-PASS Document.querySelectorAll: Invalid pseudo-element: :::before
-PASS Document.querySelector: Invalid pseudo-element: :: before
-PASS Document.querySelectorAll: Invalid pseudo-element: :: before
-PASS Document.querySelector: Undeclared namespace: ns|div
-PASS Document.querySelectorAll: Undeclared namespace: ns|div
-PASS Document.querySelector: Undeclared namespace: :not(ns|div)
-PASS Document.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS Document.querySelector: Invalid namespace: ^|div
-PASS Document.querySelectorAll: Invalid namespace: ^|div
-PASS Document.querySelector: Invalid namespace: $|div
-PASS Document.querySelectorAll: Invalid namespace: $|div
-PASS Document.querySelector: Relative selector: >*
-PASS Document.querySelectorAll: Relative selector: >*
-PASS Detached Element.querySelector: Empty String:
-PASS Detached Element.querySelectorAll: Empty String:
-PASS Detached Element.querySelector: Invalid character: [
-PASS Detached Element.querySelectorAll: Invalid character: [
-PASS Detached Element.querySelector: Invalid character: ]
-PASS Detached Element.querySelectorAll: Invalid character: ]
-PASS Detached Element.querySelector: Invalid character: (
-PASS Detached Element.querySelectorAll: Invalid character: (
-PASS Detached Element.querySelector: Invalid character: )
-PASS Detached Element.querySelectorAll: Invalid character: )
-PASS Detached Element.querySelector: Invalid character: {
-PASS Detached Element.querySelectorAll: Invalid character: {
-PASS Detached Element.querySelector: Invalid character: }
-PASS Detached Element.querySelectorAll: Invalid character: }
-PASS Detached Element.querySelector: Invalid character: <
-PASS Detached Element.querySelectorAll: Invalid character: <
-PASS Detached Element.querySelector: Invalid character: >
-PASS Detached Element.querySelectorAll: Invalid character: >
-PASS Detached Element.querySelector: Invalid ID: #
-PASS Detached Element.querySelectorAll: Invalid ID: #
-PASS Detached Element.querySelector: Invalid group of selectors: div,
-PASS Detached Element.querySelectorAll: Invalid group of selectors: div,
-PASS Detached Element.querySelector: Invalid class: .
-PASS Detached Element.querySelectorAll: Invalid class: .
-PASS Detached Element.querySelector: Invalid class: .5cm
-PASS Detached Element.querySelectorAll: Invalid class: .5cm
-PASS Detached Element.querySelector: Invalid class: ..test
-PASS Detached Element.querySelectorAll: Invalid class: ..test
-PASS Detached Element.querySelector: Invalid class: .foo..quux
-PASS Detached Element.querySelectorAll: Invalid class: .foo..quux
-PASS Detached Element.querySelector: Invalid class: .bar.
-PASS Detached Element.querySelectorAll: Invalid class: .bar.
-PASS Detached Element.querySelector: Invalid combinator: div & address, p
-PASS Detached Element.querySelectorAll: Invalid combinator: div & address, p
-PASS Detached Element.querySelector: Invalid combinator: div ++ address, p
-PASS Detached Element.querySelectorAll: Invalid combinator: div ++ address, p
-PASS Detached Element.querySelector: Invalid combinator: div ~~ address, p
-PASS Detached Element.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS Detached Element.querySelector: Invalid [att=value] selector: [*=test]
-PASS Detached Element.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS Detached Element.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS Detached Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS Detached Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS Detached Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS Detached Element.querySelector: Unknown pseudo-class: div:example
-PASS Detached Element.querySelectorAll: Unknown pseudo-class: div:example
-PASS Detached Element.querySelector: Unknown pseudo-class: :example
-PASS Detached Element.querySelectorAll: Unknown pseudo-class: :example
-PASS Detached Element.querySelector: Unknown pseudo-class: div:linkexample
-PASS Detached Element.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS Detached Element.querySelector: Unknown pseudo-element: div::example
-PASS Detached Element.querySelectorAll: Unknown pseudo-element: div::example
-PASS Detached Element.querySelector: Unknown pseudo-element: ::example
-PASS Detached Element.querySelectorAll: Unknown pseudo-element: ::example
-PASS Detached Element.querySelector: Invalid pseudo-element: :::before
-PASS Detached Element.querySelectorAll: Invalid pseudo-element: :::before
-PASS Detached Element.querySelector: Invalid pseudo-element: :: before
-PASS Detached Element.querySelectorAll: Invalid pseudo-element: :: before
-PASS Detached Element.querySelector: Undeclared namespace: ns|div
-PASS Detached Element.querySelectorAll: Undeclared namespace: ns|div
-PASS Detached Element.querySelector: Undeclared namespace: :not(ns|div)
-PASS Detached Element.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS Detached Element.querySelector: Invalid namespace: ^|div
-PASS Detached Element.querySelectorAll: Invalid namespace: ^|div
-PASS Detached Element.querySelector: Invalid namespace: $|div
-PASS Detached Element.querySelectorAll: Invalid namespace: $|div
-PASS Detached Element.querySelector: Relative selector: >*
-PASS Detached Element.querySelectorAll: Relative selector: >*
-PASS Fragment.querySelector: Empty String:
-PASS Fragment.querySelectorAll: Empty String:
-PASS Fragment.querySelector: Invalid character: [
-PASS Fragment.querySelectorAll: Invalid character: [
-PASS Fragment.querySelector: Invalid character: ]
-PASS Fragment.querySelectorAll: Invalid character: ]
-PASS Fragment.querySelector: Invalid character: (
-PASS Fragment.querySelectorAll: Invalid character: (
-PASS Fragment.querySelector: Invalid character: )
-PASS Fragment.querySelectorAll: Invalid character: )
-PASS Fragment.querySelector: Invalid character: {
-PASS Fragment.querySelectorAll: Invalid character: {
-PASS Fragment.querySelector: Invalid character: }
-PASS Fragment.querySelectorAll: Invalid character: }
-PASS Fragment.querySelector: Invalid character: <
-PASS Fragment.querySelectorAll: Invalid character: <
-PASS Fragment.querySelector: Invalid character: >
-PASS Fragment.querySelectorAll: Invalid character: >
-PASS Fragment.querySelector: Invalid ID: #
-PASS Fragment.querySelectorAll: Invalid ID: #
-PASS Fragment.querySelector: Invalid group of selectors: div,
-PASS Fragment.querySelectorAll: Invalid group of selectors: div,
-PASS Fragment.querySelector: Invalid class: .
-PASS Fragment.querySelectorAll: Invalid class: .
-PASS Fragment.querySelector: Invalid class: .5cm
-PASS Fragment.querySelectorAll: Invalid class: .5cm
-PASS Fragment.querySelector: Invalid class: ..test
-PASS Fragment.querySelectorAll: Invalid class: ..test
-PASS Fragment.querySelector: Invalid class: .foo..quux
-PASS Fragment.querySelectorAll: Invalid class: .foo..quux
-PASS Fragment.querySelector: Invalid class: .bar.
-PASS Fragment.querySelectorAll: Invalid class: .bar.
-PASS Fragment.querySelector: Invalid combinator: div & address, p
-PASS Fragment.querySelectorAll: Invalid combinator: div & address, p
-PASS Fragment.querySelector: Invalid combinator: div ++ address, p
-PASS Fragment.querySelectorAll: Invalid combinator: div ++ address, p
-PASS Fragment.querySelector: Invalid combinator: div ~~ address, p
-PASS Fragment.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS Fragment.querySelector: Invalid [att=value] selector: [*=test]
-PASS Fragment.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS Fragment.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS Fragment.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS Fragment.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS Fragment.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS Fragment.querySelector: Unknown pseudo-class: div:example
-PASS Fragment.querySelectorAll: Unknown pseudo-class: div:example
-PASS Fragment.querySelector: Unknown pseudo-class: :example
-PASS Fragment.querySelectorAll: Unknown pseudo-class: :example
-PASS Fragment.querySelector: Unknown pseudo-class: div:linkexample
-PASS Fragment.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS Fragment.querySelector: Unknown pseudo-element: div::example
-PASS Fragment.querySelectorAll: Unknown pseudo-element: div::example
-PASS Fragment.querySelector: Unknown pseudo-element: ::example
-PASS Fragment.querySelectorAll: Unknown pseudo-element: ::example
-PASS Fragment.querySelector: Invalid pseudo-element: :::before
-PASS Fragment.querySelectorAll: Invalid pseudo-element: :::before
-PASS Fragment.querySelector: Invalid pseudo-element: :: before
-PASS Fragment.querySelectorAll: Invalid pseudo-element: :: before
-PASS Fragment.querySelector: Undeclared namespace: ns|div
-PASS Fragment.querySelectorAll: Undeclared namespace: ns|div
-PASS Fragment.querySelector: Undeclared namespace: :not(ns|div)
-PASS Fragment.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS Fragment.querySelector: Invalid namespace: ^|div
-PASS Fragment.querySelectorAll: Invalid namespace: ^|div
-PASS Fragment.querySelector: Invalid namespace: $|div
-PASS Fragment.querySelectorAll: Invalid namespace: $|div
-PASS Fragment.querySelector: Relative selector: >*
-PASS Fragment.querySelectorAll: Relative selector: >*
-PASS In-document Element.querySelector: Empty String:
-PASS In-document Element.querySelectorAll: Empty String:
-PASS In-document Element.querySelector: Invalid character: [
-PASS In-document Element.querySelectorAll: Invalid character: [
-PASS In-document Element.querySelector: Invalid character: ]
-PASS In-document Element.querySelectorAll: Invalid character: ]
-PASS In-document Element.querySelector: Invalid character: (
-PASS In-document Element.querySelectorAll: Invalid character: (
-PASS In-document Element.querySelector: Invalid character: )
-PASS In-document Element.querySelectorAll: Invalid character: )
-PASS In-document Element.querySelector: Invalid character: {
-PASS In-document Element.querySelectorAll: Invalid character: {
-PASS In-document Element.querySelector: Invalid character: }
-PASS In-document Element.querySelectorAll: Invalid character: }
-PASS In-document Element.querySelector: Invalid character: <
-PASS In-document Element.querySelectorAll: Invalid character: <
-PASS In-document Element.querySelector: Invalid character: >
-PASS In-document Element.querySelectorAll: Invalid character: >
-PASS In-document Element.querySelector: Invalid ID: #
-PASS In-document Element.querySelectorAll: Invalid ID: #
-PASS In-document Element.querySelector: Invalid group of selectors: div,
-PASS In-document Element.querySelectorAll: Invalid group of selectors: div,
-PASS In-document Element.querySelector: Invalid class: .
-PASS In-document Element.querySelectorAll: Invalid class: .
-PASS In-document Element.querySelector: Invalid class: .5cm
-PASS In-document Element.querySelectorAll: Invalid class: .5cm
-PASS In-document Element.querySelector: Invalid class: ..test
-PASS In-document Element.querySelectorAll: Invalid class: ..test
-PASS In-document Element.querySelector: Invalid class: .foo..quux
-PASS In-document Element.querySelectorAll: Invalid class: .foo..quux
-PASS In-document Element.querySelector: Invalid class: .bar.
-PASS In-document Element.querySelectorAll: Invalid class: .bar.
-PASS In-document Element.querySelector: Invalid combinator: div & address, p
-PASS In-document Element.querySelectorAll: Invalid combinator: div & address, p
-PASS In-document Element.querySelector: Invalid combinator: div ++ address, p
-PASS In-document Element.querySelectorAll: Invalid combinator: div ++ address, p
-PASS In-document Element.querySelector: Invalid combinator: div ~~ address, p
-PASS In-document Element.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS In-document Element.querySelector: Invalid [att=value] selector: [*=test]
-PASS In-document Element.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS In-document Element.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS In-document Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS In-document Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS In-document Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS In-document Element.querySelector: Unknown pseudo-class: div:example
-PASS In-document Element.querySelectorAll: Unknown pseudo-class: div:example
-PASS In-document Element.querySelector: Unknown pseudo-class: :example
-PASS In-document Element.querySelectorAll: Unknown pseudo-class: :example
-PASS In-document Element.querySelector: Unknown pseudo-class: div:linkexample
-PASS In-document Element.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS In-document Element.querySelector: Unknown pseudo-element: div::example
-PASS In-document Element.querySelectorAll: Unknown pseudo-element: div::example
-PASS In-document Element.querySelector: Unknown pseudo-element: ::example
-PASS In-document Element.querySelectorAll: Unknown pseudo-element: ::example
-PASS In-document Element.querySelector: Invalid pseudo-element: :::before
-PASS In-document Element.querySelectorAll: Invalid pseudo-element: :::before
-PASS In-document Element.querySelector: Invalid pseudo-element: :: before
-PASS In-document Element.querySelectorAll: Invalid pseudo-element: :: before
-PASS In-document Element.querySelector: Undeclared namespace: ns|div
-PASS In-document Element.querySelectorAll: Undeclared namespace: ns|div
-PASS In-document Element.querySelector: Undeclared namespace: :not(ns|div)
-PASS In-document Element.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS In-document Element.querySelector: Invalid namespace: ^|div
-PASS In-document Element.querySelectorAll: Invalid namespace: ^|div
-PASS In-document Element.querySelector: Invalid namespace: $|div
-PASS In-document Element.querySelectorAll: Invalid namespace: $|div
-PASS In-document Element.querySelector: Relative selector: >*
-PASS In-document Element.querySelectorAll: Relative selector: >*
-PASS Empty Element.querySelector: Empty String:
-PASS Empty Element.querySelectorAll: Empty String:
-PASS Empty Element.querySelector: Invalid character: [
-PASS Empty Element.querySelectorAll: Invalid character: [
-PASS Empty Element.querySelector: Invalid character: ]
-PASS Empty Element.querySelectorAll: Invalid character: ]
-PASS Empty Element.querySelector: Invalid character: (
-PASS Empty Element.querySelectorAll: Invalid character: (
-PASS Empty Element.querySelector: Invalid character: )
-PASS Empty Element.querySelectorAll: Invalid character: )
-PASS Empty Element.querySelector: Invalid character: {
-PASS Empty Element.querySelectorAll: Invalid character: {
-PASS Empty Element.querySelector: Invalid character: }
-PASS Empty Element.querySelectorAll: Invalid character: }
-PASS Empty Element.querySelector: Invalid character: <
-PASS Empty Element.querySelectorAll: Invalid character: <
-PASS Empty Element.querySelector: Invalid character: >
-PASS Empty Element.querySelectorAll: Invalid character: >
-PASS Empty Element.querySelector: Invalid ID: #
-PASS Empty Element.querySelectorAll: Invalid ID: #
-PASS Empty Element.querySelector: Invalid group of selectors: div,
-PASS Empty Element.querySelectorAll: Invalid group of selectors: div,
-PASS Empty Element.querySelector: Invalid class: .
-PASS Empty Element.querySelectorAll: Invalid class: .
-PASS Empty Element.querySelector: Invalid class: .5cm
-PASS Empty Element.querySelectorAll: Invalid class: .5cm
-PASS Empty Element.querySelector: Invalid class: ..test
-PASS Empty Element.querySelectorAll: Invalid class: ..test
-PASS Empty Element.querySelector: Invalid class: .foo..quux
-PASS Empty Element.querySelectorAll: Invalid class: .foo..quux
-PASS Empty Element.querySelector: Invalid class: .bar.
-PASS Empty Element.querySelectorAll: Invalid class: .bar.
-PASS Empty Element.querySelector: Invalid combinator: div & address, p
-PASS Empty Element.querySelectorAll: Invalid combinator: div & address, p
-PASS Empty Element.querySelector: Invalid combinator: div ++ address, p
-PASS Empty Element.querySelectorAll: Invalid combinator: div ++ address, p
-PASS Empty Element.querySelector: Invalid combinator: div ~~ address, p
-PASS Empty Element.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS Empty Element.querySelector: Invalid [att=value] selector: [*=test]
-PASS Empty Element.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS Empty Element.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS Empty Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS Empty Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS Empty Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS Empty Element.querySelector: Unknown pseudo-class: div:example
-PASS Empty Element.querySelectorAll: Unknown pseudo-class: div:example
-PASS Empty Element.querySelector: Unknown pseudo-class: :example
-PASS Empty Element.querySelectorAll: Unknown pseudo-class: :example
-PASS Empty Element.querySelector: Unknown pseudo-class: div:linkexample
-PASS Empty Element.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS Empty Element.querySelector: Unknown pseudo-element: div::example
-PASS Empty Element.querySelectorAll: Unknown pseudo-element: div::example
-PASS Empty Element.querySelector: Unknown pseudo-element: ::example
-PASS Empty Element.querySelectorAll: Unknown pseudo-element: ::example
-PASS Empty Element.querySelector: Invalid pseudo-element: :::before
-PASS Empty Element.querySelectorAll: Invalid pseudo-element: :::before
-PASS Empty Element.querySelector: Invalid pseudo-element: :: before
-PASS Empty Element.querySelectorAll: Invalid pseudo-element: :: before
-PASS Empty Element.querySelector: Undeclared namespace: ns|div
-PASS Empty Element.querySelectorAll: Undeclared namespace: ns|div
-PASS Empty Element.querySelector: Undeclared namespace: :not(ns|div)
-PASS Empty Element.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS Empty Element.querySelector: Invalid namespace: ^|div
-PASS Empty Element.querySelectorAll: Invalid namespace: ^|div
-PASS Empty Element.querySelector: Invalid namespace: $|div
-PASS Empty Element.querySelectorAll: Invalid namespace: $|div
-PASS Empty Element.querySelector: Relative selector: >*
-PASS Empty Element.querySelectorAll: Relative selector: >*
-PASS Document.querySelectorAll: Type selector, matching html element: html
-PASS Document.querySelector: Type selector, matching html element: html
-PASS Document.querySelectorAll: Type selector, matching body element: body
-PASS Document.querySelector: Type selector, matching body element: body
-PASS Document.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Document.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Document.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Document.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Document.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Document.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Document.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Document.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Document.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Document.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Document.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Document.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Document.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
-PASS Document.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
-PASS Document.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Document.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Document.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Document.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Document.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Document.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Document.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Document.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Document.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Document.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Document.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Document.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Document.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Document.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Document.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Document.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Document.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Document.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Document.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Document.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Document.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Document.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Document.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Document.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Document.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Document.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Document.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Document.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Document.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Document.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Document.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Document.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Document.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Document.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Document.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Document.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Document.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Document.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Document.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Document.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Document.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Document.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Document.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Document.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Document.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Document.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Document.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Document.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Document.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Document.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Document.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Document.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Document.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Document.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Document.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Document.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Document.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Document.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Document.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Document.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Document.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Document.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Document.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Document.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Document.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Document.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Document.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Document.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Document.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Document.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Document.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Document.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Document.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Document.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Document.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Document.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Document.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Document.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Document.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Document.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Document.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Document.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Document.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Document.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Document.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Document.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Document.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Document.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Document.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Document.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Document.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Document.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Document.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Document.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Document.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Document.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Document.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Document.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Document.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Document.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Document.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Document.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Document.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Document.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Document.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Document.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Document.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Document.querySelectorAll: :root pseudo-class selector, matching document root element: :root
-PASS Document.querySelector: :root pseudo-class selector, matching document root element: :root
-PASS Document.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Document.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Document.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Document.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Document.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Document.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Document.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Document.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Document.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Document.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Document.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Document.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Document.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Document.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Document.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Document.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Document.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Document.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Document.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Document.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Document.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Document.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Document.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Document.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Document.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Document.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Document.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Document.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Document.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Document.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Document.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Document.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Document.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Document.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Document.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Document.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Document.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Document.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Document.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Document.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Document.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Document.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Document.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Document.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Document.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Document.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Document.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Document.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Document.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Document.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Document.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Document.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Document.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Document.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Document.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Document.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Document.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Document.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Document.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Document.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Document.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Document.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Document.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Document.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Document.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Document.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-FAIL Document.querySelectorAll: :link and :visited pseudo-class selectors, matching link elements with href attributes: #head :link, #head :visited assert_equals: The method should return the expected number of matches. expected 2 but got 0
-FAIL Document.querySelector: :link and :visited pseudo-class selectors, matching link elements with href attributes: #head :link, #head :visited assert_not_equals: The method should return a match. got disallowed value null
-PASS Document.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Document.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Document.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
-PASS Document.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
-PASS Document.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Document.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Document.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Document.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Document.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Document.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Document.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Document.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Document.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Document.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Document.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Document.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Document.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Document.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Document.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Document.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Document.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
-PASS Document.querySelector: :not pseudo-class selector, matching : #not>:not(div)
-PASS Document.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Document.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Document.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
-PASS Document.querySelector: :not pseudo-class selector, matching nothing: :not(*)
-PASS Document.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Document.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Document.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Document.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Document.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Document.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Document.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Document.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Document.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Document.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Document.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Document.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Document.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Document.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Document.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Document.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Document.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Document.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Document.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Document.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Document.querySelectorAll: Class selector, matching element with specified class: .class-p
-PASS Document.querySelector: Class selector, matching element with specified class: .class-p
-PASS Document.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Document.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Document.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Document.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Document.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Document.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Document.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Document.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Document.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Document.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Document.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Document.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Document.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Document.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Document.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
-PASS Document.querySelector: ID selector, matching element with specified id: #id #id-div1
-PASS Document.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Document.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Document.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Document.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Document.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Document.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Document.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
-PASS Document.querySelector: ID selector, not matching non-existent descendant: #id #none
-PASS Document.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Document.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Document.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Document.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Document.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Document.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Document.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Document.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Document.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Document.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Document.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Document.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Document.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Document.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Document.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Document.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Document.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Document.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Document.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Document.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Document.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Document.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Document.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
-PASS Document.querySelector: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
-PASS Document.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Document.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Document.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Document.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Document.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Document.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Document.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Document.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Document.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Document.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Document.querySelectorAll: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Document.querySelector: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Document.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Document.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Document.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Document.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Document.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Document.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Document.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Document.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Document.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Document.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Document.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Document.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Document.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Document.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Document.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Document.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Document.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Document.querySelector: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Document.querySelectorAll: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Document.querySelector: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Document.querySelectorAll: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Document.querySelector: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Document.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Document.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Document.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Document.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Document.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Document.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Document.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Document.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Document.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Document.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Document.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Document.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Document.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Document.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Document.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Document.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Document.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Document.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Document.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Document.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Document.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Document.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Document.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Document.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Document.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Document.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Document.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Document.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Document.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Document.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Document.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Document.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Document.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Document.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Document.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Document.querySelector: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Document.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Document.querySelector: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Document.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Document.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Document.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Document.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Document.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Document.querySelector: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Document.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Document.querySelector: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Document.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Document.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Document.querySelectorAll: Slotted selector: ::slotted(foo)
-PASS Document.querySelector: Slotted selector: ::slotted(foo)
-PASS Document.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Document.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Detached Element.querySelectorAll: Type selector, matching html element: html
-PASS Detached Element.querySelector: Type selector, matching html element: html
-PASS Detached Element.querySelectorAll: Type selector, matching body element: body
-PASS Detached Element.querySelector: Type selector, matching body element: body
-PASS Detached Element.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Detached Element.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Detached Element.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Detached Element.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Detached Element.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Detached Element.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Detached Element.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Detached Element.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Detached Element.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Detached Element.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
-PASS Detached Element.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Detached Element.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Detached Element.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Detached Element.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Detached Element.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Detached Element.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Detached Element.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Detached Element.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Detached Element.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Detached Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Detached Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Detached Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Detached Element.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Detached Element.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Detached Element.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Detached Element.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Detached Element.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Detached Element.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Detached Element.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Detached Element.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Detached Element.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Detached Element.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Detached Element.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Detached Element.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Detached Element.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Detached Element.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Detached Element.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Detached Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Detached Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Detached Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Detached Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Detached Element.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Detached Element.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Detached Element.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Detached Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Detached Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Detached Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Detached Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Detached Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Detached Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Detached Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Detached Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Detached Element.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Detached Element.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Detached Element.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Detached Element.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Detached Element.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Detached Element.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Detached Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Detached Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Detached Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Detached Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Detached Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Detached Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Detached Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Detached Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Detached Element.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Detached Element.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Detached Element.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Detached Element.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Detached Element.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Detached Element.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Detached Element.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Detached Element.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Detached Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Detached Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Detached Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Detached Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Detached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Detached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Detached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Detached Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Detached Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Detached Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Detached Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Detached Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Detached Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Detached Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Detached Element.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Detached Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Detached Element.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Detached Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Detached Element.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Detached Element.querySelectorAll: :root pseudo-class selector, not matching document root element: :root
-PASS Detached Element.querySelector: :root pseudo-class selector, not matching document root element: :root
-PASS Detached Element.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Detached Element.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Detached Element.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Detached Element.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Detached Element.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Detached Element.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Detached Element.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Detached Element.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Detached Element.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Detached Element.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Detached Element.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Detached Element.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Detached Element.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Detached Element.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Detached Element.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Detached Element.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Detached Element.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Detached Element.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Detached Element.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Detached Element.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Detached Element.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Detached Element.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Detached Element.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Detached Element.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Detached Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Detached Element.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Detached Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Detached Element.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Detached Element.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Detached Element.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Detached Element.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Detached Element.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Detached Element.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Detached Element.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Detached Element.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Detached Element.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Detached Element.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Detached Element.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Detached Element.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Detached Element.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Detached Element.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Detached Element.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Detached Element.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Detached Element.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Detached Element.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Detached Element.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Detached Element.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Detached Element.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Detached Element.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Detached Element.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Detached Element.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Detached Element.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Detached Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Detached Element.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Detached Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Detached Element.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Detached Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Detached Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Detached Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Detached Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Detached Element.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Detached Element.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Detached Element.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Detached Element.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Detached Element.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Detached Element.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Detached Element.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS Detached Element.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS Detached Element.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS Detached Element.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS Detached Element.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Detached Element.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Detached Element.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
-PASS Detached Element.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
-PASS Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Detached Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Detached Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Detached Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Detached Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Detached Element.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Detached Element.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Detached Element.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Detached Element.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Detached Element.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Detached Element.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Detached Element.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Detached Element.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Detached Element.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Detached Element.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Detached Element.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
-PASS Detached Element.querySelector: :not pseudo-class selector, matching : #not>:not(div)
-PASS Detached Element.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Detached Element.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Detached Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
-PASS Detached Element.querySelector: :not pseudo-class selector, matching nothing: :not(*)
-PASS Detached Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Detached Element.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Detached Element.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Detached Element.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Detached Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Detached Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Detached Element.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Detached Element.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Detached Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Detached Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Detached Element.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Detached Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Detached Element.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Detached Element.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Detached Element.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Detached Element.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Detached Element.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Detached Element.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Detached Element.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Detached Element.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Detached Element.querySelectorAll: Class selector, matching element with specified class: .class-p
-PASS Detached Element.querySelector: Class selector, matching element with specified class: .class-p
-PASS Detached Element.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Detached Element.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Detached Element.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Detached Element.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Detached Element.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Detached Element.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Detached Element.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Detached Element.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Detached Element.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Detached Element.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Detached Element.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Detached Element.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Detached Element.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Detached Element.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Detached Element.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
-PASS Detached Element.querySelector: ID selector, matching element with specified id: #id #id-div1
-PASS Detached Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Detached Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Detached Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Detached Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Detached Element.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Detached Element.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Detached Element.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
-PASS Detached Element.querySelector: ID selector, not matching non-existent descendant: #id #none
-PASS Detached Element.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Detached Element.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Detached Element.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Detached Element.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Detached Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Detached Element.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Detached Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Detached Element.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Detached Element.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Detached Element.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Detached Element.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Detached Element.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Detached Element.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Detached Element.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Detached Element.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Detached Element.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Detached Element.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Detached Element.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Detached Element.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Detached Element.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Detached Element.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Detached Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Detached Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Detached Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Detached Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Detached Element.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Detached Element.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Detached Element.querySelectorAll: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Detached Element.querySelector: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Detached Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Detached Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Detached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Detached Element.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Detached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Detached Element.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Detached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Detached Element.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Detached Element.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Detached Element.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Detached Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Detached Element.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Detached Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Detached Element.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Detached Element.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Detached Element.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Detached Element.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Detached Element.querySelector: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Detached Element.querySelectorAll: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Detached Element.querySelector: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Detached Element.querySelectorAll: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Detached Element.querySelector: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Detached Element.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Detached Element.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Detached Element.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Detached Element.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Detached Element.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Detached Element.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Detached Element.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Detached Element.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Detached Element.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Detached Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Detached Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Detached Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Detached Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Detached Element.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Detached Element.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Detached Element.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Detached Element.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Detached Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Detached Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Detached Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Detached Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Detached Element.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Detached Element.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Detached Element.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Detached Element.querySelector: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Detached Element.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Detached Element.querySelector: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Detached Element.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Detached Element.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Detached Element.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Detached Element.querySelector: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Detached Element.querySelector: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Detached Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Detached Element.querySelectorAll: Slotted selector: ::slotted(foo)
-PASS Detached Element.querySelector: Slotted selector: ::slotted(foo)
-PASS Detached Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Detached Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Fragment.querySelectorAll: Type selector, matching html element: html
-PASS Fragment.querySelector: Type selector, matching html element: html
-PASS Fragment.querySelectorAll: Type selector, matching body element: body
-PASS Fragment.querySelector: Type selector, matching body element: body
-PASS Fragment.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Fragment.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Fragment.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Fragment.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Fragment.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Fragment.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Fragment.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Fragment.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Fragment.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Fragment.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Fragment.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
-PASS Fragment.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Fragment.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Fragment.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Fragment.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Fragment.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Fragment.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Fragment.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Fragment.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Fragment.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Fragment.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Fragment.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Fragment.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Fragment.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Fragment.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Fragment.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Fragment.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Fragment.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Fragment.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Fragment.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Fragment.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Fragment.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Fragment.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Fragment.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Fragment.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Fragment.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Fragment.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Fragment.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Fragment.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Fragment.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Fragment.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Fragment.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Fragment.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Fragment.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Fragment.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Fragment.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Fragment.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Fragment.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Fragment.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Fragment.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Fragment.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Fragment.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Fragment.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Fragment.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Fragment.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Fragment.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Fragment.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Fragment.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Fragment.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Fragment.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Fragment.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Fragment.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Fragment.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Fragment.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Fragment.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Fragment.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Fragment.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Fragment.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Fragment.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Fragment.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Fragment.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Fragment.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Fragment.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Fragment.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Fragment.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Fragment.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Fragment.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Fragment.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Fragment.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Fragment.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Fragment.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Fragment.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Fragment.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Fragment.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Fragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Fragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Fragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Fragment.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Fragment.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Fragment.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Fragment.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Fragment.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Fragment.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Fragment.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Fragment.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Fragment.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Fragment.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Fragment.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Fragment.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Fragment.querySelectorAll: :root pseudo-class selector, not matching document root element: :root
-PASS Fragment.querySelector: :root pseudo-class selector, not matching document root element: :root
-PASS Fragment.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Fragment.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Fragment.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Fragment.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Fragment.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Fragment.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Fragment.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Fragment.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Fragment.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Fragment.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Fragment.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Fragment.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Fragment.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Fragment.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Fragment.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Fragment.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Fragment.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Fragment.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Fragment.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Fragment.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Fragment.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Fragment.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Fragment.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Fragment.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Fragment.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Fragment.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Fragment.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Fragment.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Fragment.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Fragment.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Fragment.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Fragment.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Fragment.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Fragment.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Fragment.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Fragment.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Fragment.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Fragment.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Fragment.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Fragment.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Fragment.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Fragment.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Fragment.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Fragment.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Fragment.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Fragment.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Fragment.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Fragment.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Fragment.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Fragment.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Fragment.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Fragment.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Fragment.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Fragment.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Fragment.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Fragment.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Fragment.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Fragment.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Fragment.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Fragment.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Fragment.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Fragment.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Fragment.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Fragment.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Fragment.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Fragment.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Fragment.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS Fragment.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS Fragment.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS Fragment.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS Fragment.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Fragment.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Fragment.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
-PASS Fragment.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
-PASS Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Fragment.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Fragment.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Fragment.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Fragment.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Fragment.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Fragment.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Fragment.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Fragment.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Fragment.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Fragment.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Fragment.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Fragment.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Fragment.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Fragment.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Fragment.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
-PASS Fragment.querySelector: :not pseudo-class selector, matching : #not>:not(div)
-PASS Fragment.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Fragment.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Fragment.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
-PASS Fragment.querySelector: :not pseudo-class selector, matching nothing: :not(*)
-PASS Fragment.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Fragment.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Fragment.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Fragment.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Fragment.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Fragment.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Fragment.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Fragment.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Fragment.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Fragment.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Fragment.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Fragment.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Fragment.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Fragment.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Fragment.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Fragment.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Fragment.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Fragment.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Fragment.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Fragment.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Fragment.querySelectorAll: Class selector, matching element with specified class: .class-p
-PASS Fragment.querySelector: Class selector, matching element with specified class: .class-p
-PASS Fragment.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Fragment.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Fragment.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Fragment.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Fragment.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Fragment.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Fragment.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Fragment.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Fragment.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Fragment.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Fragment.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Fragment.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Fragment.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Fragment.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Fragment.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
-PASS Fragment.querySelector: ID selector, matching element with specified id: #id #id-div1
-PASS Fragment.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Fragment.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Fragment.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Fragment.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Fragment.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Fragment.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Fragment.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
-PASS Fragment.querySelector: ID selector, not matching non-existent descendant: #id #none
-PASS Fragment.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Fragment.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Fragment.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Fragment.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Fragment.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Fragment.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Fragment.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Fragment.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Fragment.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Fragment.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Fragment.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Fragment.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Fragment.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Fragment.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Fragment.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Fragment.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Fragment.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Fragment.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Fragment.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Fragment.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Fragment.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Fragment.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Fragment.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Fragment.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Fragment.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Fragment.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Fragment.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Fragment.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Fragment.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Fragment.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Fragment.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Fragment.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Fragment.querySelectorAll: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Fragment.querySelector: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Fragment.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Fragment.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Fragment.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Fragment.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Fragment.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Fragment.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Fragment.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Fragment.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Fragment.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Fragment.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Fragment.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Fragment.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Fragment.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Fragment.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Fragment.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Fragment.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Fragment.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Fragment.querySelector: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Fragment.querySelectorAll: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Fragment.querySelector: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Fragment.querySelectorAll: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Fragment.querySelector: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Fragment.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Fragment.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Fragment.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Fragment.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Fragment.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Fragment.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Fragment.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Fragment.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Fragment.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Fragment.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Fragment.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Fragment.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Fragment.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Fragment.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Fragment.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Fragment.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Fragment.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Fragment.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Fragment.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Fragment.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Fragment.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Fragment.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Fragment.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Fragment.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Fragment.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Fragment.querySelector: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Fragment.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Fragment.querySelector: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Fragment.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Fragment.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Fragment.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Fragment.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Fragment.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Fragment.querySelector: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Fragment.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Fragment.querySelector: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Fragment.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Fragment.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Fragment.querySelectorAll: Slotted selector: ::slotted(foo)
-PASS Fragment.querySelector: Slotted selector: ::slotted(foo)
-PASS Fragment.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Fragment.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
-PASS In-document Element.querySelectorAll: Type selector, matching html element: html
-PASS In-document Element.querySelector: Type selector, matching html element: html
-PASS In-document Element.querySelectorAll: Type selector, matching body element: body
-PASS In-document Element.querySelector: Type selector, matching body element: body
-PASS In-document Element.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
-PASS In-document Element.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
-PASS In-document Element.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS In-document Element.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS In-document Element.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS In-document Element.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS In-document Element.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS In-document Element.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS In-document Element.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS In-document Element.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
-PASS In-document Element.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [*|TiTlE]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS In-document Element.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS In-document Element.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS In-document Element.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS In-document Element.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS In-document Element.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS In-document Element.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS In-document Element.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS In-document Element.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS In-document Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS In-document Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS In-document Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS In-document Element.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS In-document Element.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS In-document Element.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS In-document Element.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS In-document Element.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS In-document Element.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS In-document Element.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS In-document Element.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS In-document Element.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS In-document Element.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS In-document Element.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS In-document Element.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS In-document Element.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS In-document Element.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS In-document Element.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS In-document Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS In-document Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS In-document Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS In-document Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS In-document Element.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS In-document Element.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS In-document Element.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS In-document Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS In-document Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS In-document Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS In-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS In-document Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS In-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS In-document Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS In-document Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS In-document Element.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS In-document Element.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS In-document Element.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS In-document Element.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS In-document Element.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS In-document Element.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS In-document Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS In-document Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS In-document Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS In-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS In-document Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS In-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS In-document Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS In-document Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS In-document Element.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS In-document Element.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS In-document Element.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS In-document Element.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS In-document Element.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS In-document Element.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS In-document Element.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS In-document Element.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS In-document Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS In-document Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS In-document Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS In-document Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS In-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS In-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS In-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS In-document Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS In-document Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS In-document Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS In-document Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS In-document Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS In-document Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS In-document Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS In-document Element.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS In-document Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS In-document Element.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS In-document Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS In-document Element.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS In-document Element.querySelectorAll: :root pseudo-class selector, not matching document root element: :root
-PASS In-document Element.querySelector: :root pseudo-class selector, not matching document root element: :root
-PASS In-document Element.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS In-document Element.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS In-document Element.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS In-document Element.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS In-document Element.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS In-document Element.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS In-document Element.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS In-document Element.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS In-document Element.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS In-document Element.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS In-document Element.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS In-document Element.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS In-document Element.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS In-document Element.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS In-document Element.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS In-document Element.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS In-document Element.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS In-document Element.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS In-document Element.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS In-document Element.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS In-document Element.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS In-document Element.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS In-document Element.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS In-document Element.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS In-document Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS In-document Element.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS In-document Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS In-document Element.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS In-document Element.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS In-document Element.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS In-document Element.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS In-document Element.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS In-document Element.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS In-document Element.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS In-document Element.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS In-document Element.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS In-document Element.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS In-document Element.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS In-document Element.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS In-document Element.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS In-document Element.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS In-document Element.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS In-document Element.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS In-document Element.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS In-document Element.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS In-document Element.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS In-document Element.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS In-document Element.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS In-document Element.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS In-document Element.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS In-document Element.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS In-document Element.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS In-document Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS In-document Element.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS In-document Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS In-document Element.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS In-document Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS In-document Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS In-document Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS In-document Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS In-document Element.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS In-document Element.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS In-document Element.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS In-document Element.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS In-document Element.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS In-document Element.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS In-document Element.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS In-document Element.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS In-document Element.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS In-document Element.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS In-document Element.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS In-document Element.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS In-document Element.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
-PASS In-document Element.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
-PASS In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS In-document Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS In-document Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS In-document Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS In-document Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS In-document Element.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS In-document Element.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS In-document Element.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS In-document Element.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS In-document Element.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS In-document Element.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS In-document Element.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS In-document Element.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS In-document Element.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS In-document Element.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS In-document Element.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
-PASS In-document Element.querySelector: :not pseudo-class selector, matching : #not>:not(div)
-PASS In-document Element.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS In-document Element.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS In-document Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
-PASS In-document Element.querySelector: :not pseudo-class selector, matching nothing: :not(*)
-PASS In-document Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS In-document Element.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS In-document Element.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS In-document Element.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS In-document Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS In-document Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS In-document Element.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS In-document Element.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS In-document Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS In-document Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS In-document Element.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS In-document Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS In-document Element.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS In-document Element.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS In-document Element.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS In-document Element.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS In-document Element.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS In-document Element.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS In-document Element.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS In-document Element.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS In-document Element.querySelectorAll: Class selector, matching element with specified class: .class-p
-PASS In-document Element.querySelector: Class selector, matching element with specified class: .class-p
-PASS In-document Element.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS In-document Element.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS In-document Element.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS In-document Element.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS In-document Element.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS In-document Element.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS In-document Element.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS In-document Element.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS In-document Element.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS In-document Element.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS In-document Element.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
-PASS In-document Element.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
-PASS In-document Element.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS In-document Element.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS In-document Element.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
-PASS In-document Element.querySelector: ID selector, matching element with specified id: #id #id-div1
-PASS In-document Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS In-document Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS In-document Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS In-document Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS In-document Element.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS In-document Element.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS In-document Element.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
-PASS In-document Element.querySelector: ID selector, not matching non-existent descendant: #id #none
-PASS In-document Element.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS In-document Element.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS In-document Element.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS In-document Element.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS In-document Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS In-document Element.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS In-document Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS In-document Element.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS In-document Element.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS In-document Element.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS In-document Element.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS In-document Element.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS In-document Element.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS In-document Element.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS In-document Element.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS In-document Element.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS In-document Element.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS In-document Element.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS In-document Element.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS In-document Element.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS In-document Element.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
-PASS In-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS In-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS In-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS In-document Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS In-document Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS In-document Element.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS In-document Element.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS In-document Element.querySelectorAll: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS In-document Element.querySelector: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS In-document Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
-PASS In-document Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
-PASS In-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS In-document Element.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS In-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS In-document Element.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS In-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS In-document Element.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS In-document Element.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS In-document Element.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS In-document Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS In-document Element.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS In-document Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS In-document Element.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS In-document Element.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS In-document Element.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS In-document Element.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS In-document Element.querySelector: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS In-document Element.querySelectorAll: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS In-document Element.querySelector: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS In-document Element.querySelectorAll: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS In-document Element.querySelector: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS In-document Element.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
-PASS In-document Element.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS In-document Element.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS In-document Element.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS In-document Element.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS In-document Element.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS In-document Element.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS In-document Element.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS In-document Element.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS In-document Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS In-document Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS In-document Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS In-document Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS In-document Element.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS In-document Element.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS In-document Element.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS In-document Element.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS In-document Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS In-document Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS In-document Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS In-document Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS In-document Element.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS In-document Element.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS In-document Element.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS In-document Element.querySelector: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS In-document Element.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS In-document Element.querySelector: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS In-document Element.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS In-document Element.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS In-document Element.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS In-document Element.querySelector: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS In-document Element.querySelector: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS In-document Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS In-document Element.querySelectorAll: Slotted selector: ::slotted(foo)
-PASS In-document Element.querySelector: Slotted selector: ::slotted(foo)
-PASS In-document Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
-PASS In-document Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-All-xht-expected.txt b/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-All-xht-expected.txt
deleted file mode 100644
index 472d761b55f6e0..00000000000000
--- a/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-All-xht-expected.txt
+++ /dev/null
@@ -1,2115 +0,0 @@
-This is a testharness.js-based test.
-Found 1975 tests; 1973 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Selectors-API Test Suite: XHTML
-PASS Document supports querySelector
-PASS Document supports querySelectorAll
-PASS Document.querySelectorAll returns NodeList instance
-PASS Detached Element supports querySelector
-PASS Detached Element supports querySelectorAll
-PASS Detached Element.querySelectorAll returns NodeList instance
-PASS Fragment supports querySelector
-PASS Fragment supports querySelectorAll
-PASS Fragment.querySelectorAll returns NodeList instance
-PASS In-document Element supports querySelector
-PASS In-document Element supports querySelectorAll
-PASS In-document Element.querySelectorAll returns NodeList instance
-PASS Document.querySelectorAll null
-PASS Document.querySelectorAll undefined
-PASS Document.querySelectorAll no parameter
-PASS Document.querySelector null
-PASS Document.querySelector undefined
-PASS Document.querySelector no parameter
-PASS Document.querySelectorAll tree order
-PASS Detached Element.querySelectorAll null
-PASS Detached Element.querySelectorAll undefined
-PASS Detached Element.querySelectorAll no parameter
-PASS Detached Element.querySelector null
-PASS Detached Element.querySelector undefined
-PASS Detached Element.querySelector no parameter
-PASS Detached Element.querySelectorAll tree order
-PASS Fragment.querySelectorAll null
-PASS Fragment.querySelectorAll undefined
-PASS Fragment.querySelectorAll no parameter
-PASS Fragment.querySelector null
-PASS Fragment.querySelector undefined
-PASS Fragment.querySelector no parameter
-PASS Fragment.querySelectorAll tree order
-PASS In-document Element.querySelectorAll null
-PASS In-document Element.querySelectorAll undefined
-PASS In-document Element.querySelectorAll no parameter
-PASS In-document Element.querySelector null
-PASS In-document Element.querySelector undefined
-PASS In-document Element.querySelector no parameter
-PASS In-document Element.querySelectorAll tree order
-PASS Document: static NodeList
-PASS Document: new NodeList
-PASS Detached Element: static NodeList
-PASS Detached Element: new NodeList
-PASS Fragment: static NodeList
-PASS Fragment: new NodeList
-PASS In-document Element: static NodeList
-PASS In-document Element: new NodeList
-PASS Document.querySelector: Empty String:
-PASS Document.querySelectorAll: Empty String:
-PASS Document.querySelector: Invalid character: [
-PASS Document.querySelectorAll: Invalid character: [
-PASS Document.querySelector: Invalid character: ]
-PASS Document.querySelectorAll: Invalid character: ]
-PASS Document.querySelector: Invalid character: (
-PASS Document.querySelectorAll: Invalid character: (
-PASS Document.querySelector: Invalid character: )
-PASS Document.querySelectorAll: Invalid character: )
-PASS Document.querySelector: Invalid character: {
-PASS Document.querySelectorAll: Invalid character: {
-PASS Document.querySelector: Invalid character: }
-PASS Document.querySelectorAll: Invalid character: }
-PASS Document.querySelector: Invalid character: <
-PASS Document.querySelectorAll: Invalid character: <
-PASS Document.querySelector: Invalid character: >
-PASS Document.querySelectorAll: Invalid character: >
-PASS Document.querySelector: Invalid ID: #
-PASS Document.querySelectorAll: Invalid ID: #
-PASS Document.querySelector: Invalid group of selectors: div,
-PASS Document.querySelectorAll: Invalid group of selectors: div,
-PASS Document.querySelector: Invalid class: .
-PASS Document.querySelectorAll: Invalid class: .
-PASS Document.querySelector: Invalid class: .5cm
-PASS Document.querySelectorAll: Invalid class: .5cm
-PASS Document.querySelector: Invalid class: ..test
-PASS Document.querySelectorAll: Invalid class: ..test
-PASS Document.querySelector: Invalid class: .foo..quux
-PASS Document.querySelectorAll: Invalid class: .foo..quux
-PASS Document.querySelector: Invalid class: .bar.
-PASS Document.querySelectorAll: Invalid class: .bar.
-PASS Document.querySelector: Invalid combinator: div & address, p
-PASS Document.querySelectorAll: Invalid combinator: div & address, p
-PASS Document.querySelector: Invalid combinator: div ++ address, p
-PASS Document.querySelectorAll: Invalid combinator: div ++ address, p
-PASS Document.querySelector: Invalid combinator: div ~~ address, p
-PASS Document.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS Document.querySelector: Invalid [att=value] selector: [*=test]
-PASS Document.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS Document.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS Document.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS Document.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS Document.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS Document.querySelector: Unknown pseudo-class: div:example
-PASS Document.querySelectorAll: Unknown pseudo-class: div:example
-PASS Document.querySelector: Unknown pseudo-class: :example
-PASS Document.querySelectorAll: Unknown pseudo-class: :example
-PASS Document.querySelector: Unknown pseudo-class: div:linkexample
-PASS Document.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS Document.querySelector: Unknown pseudo-element: div::example
-PASS Document.querySelectorAll: Unknown pseudo-element: div::example
-PASS Document.querySelector: Unknown pseudo-element: ::example
-PASS Document.querySelectorAll: Unknown pseudo-element: ::example
-PASS Document.querySelector: Invalid pseudo-element: :::before
-PASS Document.querySelectorAll: Invalid pseudo-element: :::before
-PASS Document.querySelector: Invalid pseudo-element: :: before
-PASS Document.querySelectorAll: Invalid pseudo-element: :: before
-PASS Document.querySelector: Undeclared namespace: ns|div
-PASS Document.querySelectorAll: Undeclared namespace: ns|div
-PASS Document.querySelector: Undeclared namespace: :not(ns|div)
-PASS Document.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS Document.querySelector: Invalid namespace: ^|div
-PASS Document.querySelectorAll: Invalid namespace: ^|div
-PASS Document.querySelector: Invalid namespace: $|div
-PASS Document.querySelectorAll: Invalid namespace: $|div
-PASS Document.querySelector: Relative selector: >*
-PASS Document.querySelectorAll: Relative selector: >*
-PASS Detached Element.querySelector: Empty String:
-PASS Detached Element.querySelectorAll: Empty String:
-PASS Detached Element.querySelector: Invalid character: [
-PASS Detached Element.querySelectorAll: Invalid character: [
-PASS Detached Element.querySelector: Invalid character: ]
-PASS Detached Element.querySelectorAll: Invalid character: ]
-PASS Detached Element.querySelector: Invalid character: (
-PASS Detached Element.querySelectorAll: Invalid character: (
-PASS Detached Element.querySelector: Invalid character: )
-PASS Detached Element.querySelectorAll: Invalid character: )
-PASS Detached Element.querySelector: Invalid character: {
-PASS Detached Element.querySelectorAll: Invalid character: {
-PASS Detached Element.querySelector: Invalid character: }
-PASS Detached Element.querySelectorAll: Invalid character: }
-PASS Detached Element.querySelector: Invalid character: <
-PASS Detached Element.querySelectorAll: Invalid character: <
-PASS Detached Element.querySelector: Invalid character: >
-PASS Detached Element.querySelectorAll: Invalid character: >
-PASS Detached Element.querySelector: Invalid ID: #
-PASS Detached Element.querySelectorAll: Invalid ID: #
-PASS Detached Element.querySelector: Invalid group of selectors: div,
-PASS Detached Element.querySelectorAll: Invalid group of selectors: div,
-PASS Detached Element.querySelector: Invalid class: .
-PASS Detached Element.querySelectorAll: Invalid class: .
-PASS Detached Element.querySelector: Invalid class: .5cm
-PASS Detached Element.querySelectorAll: Invalid class: .5cm
-PASS Detached Element.querySelector: Invalid class: ..test
-PASS Detached Element.querySelectorAll: Invalid class: ..test
-PASS Detached Element.querySelector: Invalid class: .foo..quux
-PASS Detached Element.querySelectorAll: Invalid class: .foo..quux
-PASS Detached Element.querySelector: Invalid class: .bar.
-PASS Detached Element.querySelectorAll: Invalid class: .bar.
-PASS Detached Element.querySelector: Invalid combinator: div & address, p
-PASS Detached Element.querySelectorAll: Invalid combinator: div & address, p
-PASS Detached Element.querySelector: Invalid combinator: div ++ address, p
-PASS Detached Element.querySelectorAll: Invalid combinator: div ++ address, p
-PASS Detached Element.querySelector: Invalid combinator: div ~~ address, p
-PASS Detached Element.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS Detached Element.querySelector: Invalid [att=value] selector: [*=test]
-PASS Detached Element.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS Detached Element.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS Detached Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS Detached Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS Detached Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS Detached Element.querySelector: Unknown pseudo-class: div:example
-PASS Detached Element.querySelectorAll: Unknown pseudo-class: div:example
-PASS Detached Element.querySelector: Unknown pseudo-class: :example
-PASS Detached Element.querySelectorAll: Unknown pseudo-class: :example
-PASS Detached Element.querySelector: Unknown pseudo-class: div:linkexample
-PASS Detached Element.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS Detached Element.querySelector: Unknown pseudo-element: div::example
-PASS Detached Element.querySelectorAll: Unknown pseudo-element: div::example
-PASS Detached Element.querySelector: Unknown pseudo-element: ::example
-PASS Detached Element.querySelectorAll: Unknown pseudo-element: ::example
-PASS Detached Element.querySelector: Invalid pseudo-element: :::before
-PASS Detached Element.querySelectorAll: Invalid pseudo-element: :::before
-PASS Detached Element.querySelector: Invalid pseudo-element: :: before
-PASS Detached Element.querySelectorAll: Invalid pseudo-element: :: before
-PASS Detached Element.querySelector: Undeclared namespace: ns|div
-PASS Detached Element.querySelectorAll: Undeclared namespace: ns|div
-PASS Detached Element.querySelector: Undeclared namespace: :not(ns|div)
-PASS Detached Element.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS Detached Element.querySelector: Invalid namespace: ^|div
-PASS Detached Element.querySelectorAll: Invalid namespace: ^|div
-PASS Detached Element.querySelector: Invalid namespace: $|div
-PASS Detached Element.querySelectorAll: Invalid namespace: $|div
-PASS Detached Element.querySelector: Relative selector: >*
-PASS Detached Element.querySelectorAll: Relative selector: >*
-PASS Fragment.querySelector: Empty String:
-PASS Fragment.querySelectorAll: Empty String:
-PASS Fragment.querySelector: Invalid character: [
-PASS Fragment.querySelectorAll: Invalid character: [
-PASS Fragment.querySelector: Invalid character: ]
-PASS Fragment.querySelectorAll: Invalid character: ]
-PASS Fragment.querySelector: Invalid character: (
-PASS Fragment.querySelectorAll: Invalid character: (
-PASS Fragment.querySelector: Invalid character: )
-PASS Fragment.querySelectorAll: Invalid character: )
-PASS Fragment.querySelector: Invalid character: {
-PASS Fragment.querySelectorAll: Invalid character: {
-PASS Fragment.querySelector: Invalid character: }
-PASS Fragment.querySelectorAll: Invalid character: }
-PASS Fragment.querySelector: Invalid character: <
-PASS Fragment.querySelectorAll: Invalid character: <
-PASS Fragment.querySelector: Invalid character: >
-PASS Fragment.querySelectorAll: Invalid character: >
-PASS Fragment.querySelector: Invalid ID: #
-PASS Fragment.querySelectorAll: Invalid ID: #
-PASS Fragment.querySelector: Invalid group of selectors: div,
-PASS Fragment.querySelectorAll: Invalid group of selectors: div,
-PASS Fragment.querySelector: Invalid class: .
-PASS Fragment.querySelectorAll: Invalid class: .
-PASS Fragment.querySelector: Invalid class: .5cm
-PASS Fragment.querySelectorAll: Invalid class: .5cm
-PASS Fragment.querySelector: Invalid class: ..test
-PASS Fragment.querySelectorAll: Invalid class: ..test
-PASS Fragment.querySelector: Invalid class: .foo..quux
-PASS Fragment.querySelectorAll: Invalid class: .foo..quux
-PASS Fragment.querySelector: Invalid class: .bar.
-PASS Fragment.querySelectorAll: Invalid class: .bar.
-PASS Fragment.querySelector: Invalid combinator: div & address, p
-PASS Fragment.querySelectorAll: Invalid combinator: div & address, p
-PASS Fragment.querySelector: Invalid combinator: div ++ address, p
-PASS Fragment.querySelectorAll: Invalid combinator: div ++ address, p
-PASS Fragment.querySelector: Invalid combinator: div ~~ address, p
-PASS Fragment.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS Fragment.querySelector: Invalid [att=value] selector: [*=test]
-PASS Fragment.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS Fragment.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS Fragment.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS Fragment.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS Fragment.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS Fragment.querySelector: Unknown pseudo-class: div:example
-PASS Fragment.querySelectorAll: Unknown pseudo-class: div:example
-PASS Fragment.querySelector: Unknown pseudo-class: :example
-PASS Fragment.querySelectorAll: Unknown pseudo-class: :example
-PASS Fragment.querySelector: Unknown pseudo-class: div:linkexample
-PASS Fragment.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS Fragment.querySelector: Unknown pseudo-element: div::example
-PASS Fragment.querySelectorAll: Unknown pseudo-element: div::example
-PASS Fragment.querySelector: Unknown pseudo-element: ::example
-PASS Fragment.querySelectorAll: Unknown pseudo-element: ::example
-PASS Fragment.querySelector: Invalid pseudo-element: :::before
-PASS Fragment.querySelectorAll: Invalid pseudo-element: :::before
-PASS Fragment.querySelector: Invalid pseudo-element: :: before
-PASS Fragment.querySelectorAll: Invalid pseudo-element: :: before
-PASS Fragment.querySelector: Undeclared namespace: ns|div
-PASS Fragment.querySelectorAll: Undeclared namespace: ns|div
-PASS Fragment.querySelector: Undeclared namespace: :not(ns|div)
-PASS Fragment.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS Fragment.querySelector: Invalid namespace: ^|div
-PASS Fragment.querySelectorAll: Invalid namespace: ^|div
-PASS Fragment.querySelector: Invalid namespace: $|div
-PASS Fragment.querySelectorAll: Invalid namespace: $|div
-PASS Fragment.querySelector: Relative selector: >*
-PASS Fragment.querySelectorAll: Relative selector: >*
-PASS In-document Element.querySelector: Empty String:
-PASS In-document Element.querySelectorAll: Empty String:
-PASS In-document Element.querySelector: Invalid character: [
-PASS In-document Element.querySelectorAll: Invalid character: [
-PASS In-document Element.querySelector: Invalid character: ]
-PASS In-document Element.querySelectorAll: Invalid character: ]
-PASS In-document Element.querySelector: Invalid character: (
-PASS In-document Element.querySelectorAll: Invalid character: (
-PASS In-document Element.querySelector: Invalid character: )
-PASS In-document Element.querySelectorAll: Invalid character: )
-PASS In-document Element.querySelector: Invalid character: {
-PASS In-document Element.querySelectorAll: Invalid character: {
-PASS In-document Element.querySelector: Invalid character: }
-PASS In-document Element.querySelectorAll: Invalid character: }
-PASS In-document Element.querySelector: Invalid character: <
-PASS In-document Element.querySelectorAll: Invalid character: <
-PASS In-document Element.querySelector: Invalid character: >
-PASS In-document Element.querySelectorAll: Invalid character: >
-PASS In-document Element.querySelector: Invalid ID: #
-PASS In-document Element.querySelectorAll: Invalid ID: #
-PASS In-document Element.querySelector: Invalid group of selectors: div,
-PASS In-document Element.querySelectorAll: Invalid group of selectors: div,
-PASS In-document Element.querySelector: Invalid class: .
-PASS In-document Element.querySelectorAll: Invalid class: .
-PASS In-document Element.querySelector: Invalid class: .5cm
-PASS In-document Element.querySelectorAll: Invalid class: .5cm
-PASS In-document Element.querySelector: Invalid class: ..test
-PASS In-document Element.querySelectorAll: Invalid class: ..test
-PASS In-document Element.querySelector: Invalid class: .foo..quux
-PASS In-document Element.querySelectorAll: Invalid class: .foo..quux
-PASS In-document Element.querySelector: Invalid class: .bar.
-PASS In-document Element.querySelectorAll: Invalid class: .bar.
-PASS In-document Element.querySelector: Invalid combinator: div & address, p
-PASS In-document Element.querySelectorAll: Invalid combinator: div & address, p
-PASS In-document Element.querySelector: Invalid combinator: div ++ address, p
-PASS In-document Element.querySelectorAll: Invalid combinator: div ++ address, p
-PASS In-document Element.querySelector: Invalid combinator: div ~~ address, p
-PASS In-document Element.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS In-document Element.querySelector: Invalid [att=value] selector: [*=test]
-PASS In-document Element.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS In-document Element.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS In-document Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS In-document Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS In-document Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS In-document Element.querySelector: Unknown pseudo-class: div:example
-PASS In-document Element.querySelectorAll: Unknown pseudo-class: div:example
-PASS In-document Element.querySelector: Unknown pseudo-class: :example
-PASS In-document Element.querySelectorAll: Unknown pseudo-class: :example
-PASS In-document Element.querySelector: Unknown pseudo-class: div:linkexample
-PASS In-document Element.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS In-document Element.querySelector: Unknown pseudo-element: div::example
-PASS In-document Element.querySelectorAll: Unknown pseudo-element: div::example
-PASS In-document Element.querySelector: Unknown pseudo-element: ::example
-PASS In-document Element.querySelectorAll: Unknown pseudo-element: ::example
-PASS In-document Element.querySelector: Invalid pseudo-element: :::before
-PASS In-document Element.querySelectorAll: Invalid pseudo-element: :::before
-PASS In-document Element.querySelector: Invalid pseudo-element: :: before
-PASS In-document Element.querySelectorAll: Invalid pseudo-element: :: before
-PASS In-document Element.querySelector: Undeclared namespace: ns|div
-PASS In-document Element.querySelectorAll: Undeclared namespace: ns|div
-PASS In-document Element.querySelector: Undeclared namespace: :not(ns|div)
-PASS In-document Element.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS In-document Element.querySelector: Invalid namespace: ^|div
-PASS In-document Element.querySelectorAll: Invalid namespace: ^|div
-PASS In-document Element.querySelector: Invalid namespace: $|div
-PASS In-document Element.querySelectorAll: Invalid namespace: $|div
-PASS In-document Element.querySelector: Relative selector: >*
-PASS In-document Element.querySelectorAll: Relative selector: >*
-PASS Empty Element.querySelector: Empty String:
-PASS Empty Element.querySelectorAll: Empty String:
-PASS Empty Element.querySelector: Invalid character: [
-PASS Empty Element.querySelectorAll: Invalid character: [
-PASS Empty Element.querySelector: Invalid character: ]
-PASS Empty Element.querySelectorAll: Invalid character: ]
-PASS Empty Element.querySelector: Invalid character: (
-PASS Empty Element.querySelectorAll: Invalid character: (
-PASS Empty Element.querySelector: Invalid character: )
-PASS Empty Element.querySelectorAll: Invalid character: )
-PASS Empty Element.querySelector: Invalid character: {
-PASS Empty Element.querySelectorAll: Invalid character: {
-PASS Empty Element.querySelector: Invalid character: }
-PASS Empty Element.querySelectorAll: Invalid character: }
-PASS Empty Element.querySelector: Invalid character: <
-PASS Empty Element.querySelectorAll: Invalid character: <
-PASS Empty Element.querySelector: Invalid character: >
-PASS Empty Element.querySelectorAll: Invalid character: >
-PASS Empty Element.querySelector: Invalid ID: #
-PASS Empty Element.querySelectorAll: Invalid ID: #
-PASS Empty Element.querySelector: Invalid group of selectors: div,
-PASS Empty Element.querySelectorAll: Invalid group of selectors: div,
-PASS Empty Element.querySelector: Invalid class: .
-PASS Empty Element.querySelectorAll: Invalid class: .
-PASS Empty Element.querySelector: Invalid class: .5cm
-PASS Empty Element.querySelectorAll: Invalid class: .5cm
-PASS Empty Element.querySelector: Invalid class: ..test
-PASS Empty Element.querySelectorAll: Invalid class: ..test
-PASS Empty Element.querySelector: Invalid class: .foo..quux
-PASS Empty Element.querySelectorAll: Invalid class: .foo..quux
-PASS Empty Element.querySelector: Invalid class: .bar.
-PASS Empty Element.querySelectorAll: Invalid class: .bar.
-PASS Empty Element.querySelector: Invalid combinator: div & address, p
-PASS Empty Element.querySelectorAll: Invalid combinator: div & address, p
-PASS Empty Element.querySelector: Invalid combinator: div ++ address, p
-PASS Empty Element.querySelectorAll: Invalid combinator: div ++ address, p
-PASS Empty Element.querySelector: Invalid combinator: div ~~ address, p
-PASS Empty Element.querySelectorAll: Invalid combinator: div ~~ address, p
-PASS Empty Element.querySelector: Invalid [att=value] selector: [*=test]
-PASS Empty Element.querySelectorAll: Invalid [att=value] selector: [*=test]
-PASS Empty Element.querySelector: Invalid [att=value] selector: [*|*=test]
-PASS Empty Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]
-PASS Empty Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]
-PASS Empty Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]
-PASS Empty Element.querySelector: Unknown pseudo-class: div:example
-PASS Empty Element.querySelectorAll: Unknown pseudo-class: div:example
-PASS Empty Element.querySelector: Unknown pseudo-class: :example
-PASS Empty Element.querySelectorAll: Unknown pseudo-class: :example
-PASS Empty Element.querySelector: Unknown pseudo-class: div:linkexample
-PASS Empty Element.querySelectorAll: Unknown pseudo-class: div:linkexample
-PASS Empty Element.querySelector: Unknown pseudo-element: div::example
-PASS Empty Element.querySelectorAll: Unknown pseudo-element: div::example
-PASS Empty Element.querySelector: Unknown pseudo-element: ::example
-PASS Empty Element.querySelectorAll: Unknown pseudo-element: ::example
-PASS Empty Element.querySelector: Invalid pseudo-element: :::before
-PASS Empty Element.querySelectorAll: Invalid pseudo-element: :::before
-PASS Empty Element.querySelector: Invalid pseudo-element: :: before
-PASS Empty Element.querySelectorAll: Invalid pseudo-element: :: before
-PASS Empty Element.querySelector: Undeclared namespace: ns|div
-PASS Empty Element.querySelectorAll: Undeclared namespace: ns|div
-PASS Empty Element.querySelector: Undeclared namespace: :not(ns|div)
-PASS Empty Element.querySelectorAll: Undeclared namespace: :not(ns|div)
-PASS Empty Element.querySelector: Invalid namespace: ^|div
-PASS Empty Element.querySelectorAll: Invalid namespace: ^|div
-PASS Empty Element.querySelector: Invalid namespace: $|div
-PASS Empty Element.querySelectorAll: Invalid namespace: $|div
-PASS Empty Element.querySelector: Relative selector: >*
-PASS Empty Element.querySelectorAll: Relative selector: >*
-PASS Document.querySelectorAll: Type selector, matching html element: html
-PASS Document.querySelector: Type selector, matching html element: html
-PASS Document.querySelectorAll: Type selector, matching body element: body
-PASS Document.querySelector: Type selector, matching body element: body
-PASS Document.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Document.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Document.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Document.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Document.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Document.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Document.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Document.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Document.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Document.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Document.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Document.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Document.querySelectorAll: Attribute presence selector, not matching title attribute, case sensitivity: #attr-presence [*|TiTlE]
-PASS Document.querySelector: Attribute presence selector, not matching title attribute, case sensitivity: #attr-presence [*|TiTlE]
-PASS Document.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Document.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Document.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Document.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Document.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Document.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Document.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Document.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Document.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Document.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Document.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Document.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Document.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Document.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Document.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Document.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Document.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Document.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Document.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Document.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Document.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Document.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Document.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Document.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Document.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Document.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Document.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Document.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Document.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Document.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Document.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Document.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Document.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Document.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Document.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Document.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Document.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Document.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Document.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Document.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Document.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Document.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Document.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Document.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Document.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Document.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Document.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Document.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Document.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Document.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Document.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Document.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Document.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Document.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Document.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Document.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Document.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Document.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Document.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Document.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Document.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Document.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Document.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Document.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Document.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Document.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Document.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Document.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Document.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Document.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Document.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Document.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Document.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Document.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Document.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Document.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Document.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Document.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Document.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Document.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Document.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Document.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Document.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Document.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Document.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Document.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Document.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Document.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Document.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Document.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Document.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Document.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Document.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Document.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Document.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Document.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Document.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Document.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Document.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Document.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Document.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Document.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Document.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Document.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Document.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Document.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Document.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Document.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Document.querySelectorAll: :root pseudo-class selector, matching document root element: :root
-PASS Document.querySelector: :root pseudo-class selector, matching document root element: :root
-PASS Document.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Document.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Document.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Document.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Document.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Document.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Document.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Document.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Document.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Document.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Document.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Document.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Document.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Document.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Document.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Document.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Document.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Document.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Document.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Document.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Document.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Document.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Document.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Document.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Document.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Document.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Document.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Document.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Document.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Document.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Document.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Document.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Document.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Document.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Document.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Document.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Document.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Document.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Document.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Document.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Document.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Document.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Document.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Document.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Document.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Document.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Document.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Document.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Document.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Document.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Document.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Document.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Document.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Document.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Document.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Document.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Document.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Document.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Document.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Document.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Document.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Document.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Document.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Document.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Document.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Document.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-FAIL Document.querySelectorAll: :link and :visited pseudo-class selectors, matching link elements with href attributes: #head :link, #head :visited assert_equals: The method should return the expected number of matches. expected 2 but got 0
-FAIL Document.querySelector: :link and :visited pseudo-class selectors, matching link elements with href attributes: #head :link, #head :visited assert_not_equals: The method should return a match. got disallowed value null
-PASS Document.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Document.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Document.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
-PASS Document.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
-PASS Document.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Document.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Document.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Document.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Document.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Document.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Document.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Document.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Document.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Document.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Document.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Document.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Document.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Document.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Document.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Document.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Document.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
-PASS Document.querySelector: :not pseudo-class selector, matching : #not>:not(div)
-PASS Document.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Document.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Document.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
-PASS Document.querySelector: :not pseudo-class selector, matching nothing: :not(*)
-PASS Document.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Document.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Document.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Document.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Document.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Document.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Document.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Document.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Document.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Document.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Document.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Document.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Document.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Document.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Document.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Document.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Document.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Document.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Document.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Document.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Document.querySelectorAll: Class selector, matching element with specified class: .class-p
-PASS Document.querySelector: Class selector, matching element with specified class: .class-p
-PASS Document.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Document.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Document.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Document.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Document.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Document.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Document.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Document.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Document.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Document.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Document.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Document.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Document.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Document.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Document.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
-PASS Document.querySelector: ID selector, matching element with specified id: #id #id-div1
-PASS Document.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Document.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Document.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Document.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Document.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Document.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Document.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
-PASS Document.querySelector: ID selector, not matching non-existent descendant: #id #none
-PASS Document.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Document.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Document.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Document.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Document.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Document.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Document.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Document.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Document.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Document.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Document.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Document.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Document.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Document.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Document.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Document.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Document.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Document.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Document.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Document.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Document.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Document.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Document.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
-PASS Document.querySelector: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
-PASS Document.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Document.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Document.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Document.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Document.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Document.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Document.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Document.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Document.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Document.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Document.querySelectorAll: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Document.querySelector: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Document.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Document.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Document.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Document.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Document.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Document.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Document.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Document.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Document.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Document.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Document.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Document.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Document.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Document.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Document.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Document.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Document.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Document.querySelector: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Document.querySelectorAll: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Document.querySelector: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Document.querySelectorAll: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Document.querySelector: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Document.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Document.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Document.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Document.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Document.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Document.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Document.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Document.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Document.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Document.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Document.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Document.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Document.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Document.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Document.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Document.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Document.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Document.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Document.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Document.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Document.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Document.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Document.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Document.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Document.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Document.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Document.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Document.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Document.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Document.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Document.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Document.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Document.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Document.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Document.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Document.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Document.querySelector: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Document.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Document.querySelector: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Document.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Document.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Document.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Document.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Document.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Document.querySelector: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Document.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Document.querySelector: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Document.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Document.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Document.querySelectorAll: Slotted selector: ::slotted(foo)
-PASS Document.querySelector: Slotted selector: ::slotted(foo)
-PASS Document.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Document.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Detached Element.querySelectorAll: Type selector, matching html element: html
-PASS Detached Element.querySelector: Type selector, matching html element: html
-PASS Detached Element.querySelectorAll: Type selector, matching body element: body
-PASS Detached Element.querySelector: Type selector, matching body element: body
-PASS Detached Element.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Detached Element.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Detached Element.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Detached Element.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Detached Element.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Detached Element.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Detached Element.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Detached Element.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Detached Element.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Detached Element.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Detached Element.querySelectorAll: Attribute presence selector, not matching title attribute, case sensitivity: #attr-presence [*|TiTlE]
-PASS Detached Element.querySelector: Attribute presence selector, not matching title attribute, case sensitivity: #attr-presence [*|TiTlE]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Detached Element.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Detached Element.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Detached Element.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Detached Element.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Detached Element.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Detached Element.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Detached Element.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Detached Element.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Detached Element.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Detached Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Detached Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Detached Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Detached Element.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Detached Element.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Detached Element.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Detached Element.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Detached Element.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Detached Element.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Detached Element.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Detached Element.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Detached Element.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Detached Element.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Detached Element.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Detached Element.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Detached Element.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Detached Element.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Detached Element.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Detached Element.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Detached Element.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Detached Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Detached Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Detached Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Detached Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Detached Element.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Detached Element.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Detached Element.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Detached Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Detached Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Detached Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Detached Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Detached Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Detached Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Detached Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Detached Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Detached Element.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Detached Element.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Detached Element.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Detached Element.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Detached Element.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Detached Element.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Detached Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Detached Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Detached Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Detached Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Detached Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Detached Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Detached Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Detached Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Detached Element.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Detached Element.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Detached Element.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Detached Element.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Detached Element.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Detached Element.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Detached Element.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Detached Element.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Detached Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Detached Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Detached Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Detached Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Detached Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Detached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Detached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Detached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Detached Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Detached Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Detached Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Detached Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Detached Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Detached Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Detached Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Detached Element.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Detached Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Detached Element.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Detached Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Detached Element.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Detached Element.querySelectorAll: :root pseudo-class selector, not matching document root element: :root
-PASS Detached Element.querySelector: :root pseudo-class selector, not matching document root element: :root
-PASS Detached Element.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Detached Element.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Detached Element.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Detached Element.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Detached Element.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Detached Element.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Detached Element.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Detached Element.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Detached Element.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Detached Element.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Detached Element.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Detached Element.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Detached Element.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Detached Element.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Detached Element.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Detached Element.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Detached Element.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Detached Element.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Detached Element.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Detached Element.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Detached Element.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Detached Element.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Detached Element.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Detached Element.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Detached Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Detached Element.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Detached Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Detached Element.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Detached Element.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Detached Element.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Detached Element.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Detached Element.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Detached Element.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Detached Element.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Detached Element.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Detached Element.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Detached Element.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Detached Element.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Detached Element.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Detached Element.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Detached Element.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Detached Element.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Detached Element.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Detached Element.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Detached Element.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Detached Element.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Detached Element.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Detached Element.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Detached Element.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Detached Element.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Detached Element.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Detached Element.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Detached Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Detached Element.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Detached Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Detached Element.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Detached Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Detached Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Detached Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Detached Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Detached Element.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Detached Element.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Detached Element.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Detached Element.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Detached Element.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Detached Element.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Detached Element.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS Detached Element.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS Detached Element.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS Detached Element.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS Detached Element.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Detached Element.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Detached Element.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
-PASS Detached Element.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
-PASS Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Detached Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Detached Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Detached Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Detached Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Detached Element.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Detached Element.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Detached Element.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Detached Element.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Detached Element.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Detached Element.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Detached Element.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Detached Element.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Detached Element.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Detached Element.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Detached Element.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
-PASS Detached Element.querySelector: :not pseudo-class selector, matching : #not>:not(div)
-PASS Detached Element.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Detached Element.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Detached Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
-PASS Detached Element.querySelector: :not pseudo-class selector, matching nothing: :not(*)
-PASS Detached Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Detached Element.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Detached Element.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Detached Element.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Detached Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Detached Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Detached Element.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Detached Element.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Detached Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Detached Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Detached Element.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Detached Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Detached Element.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Detached Element.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Detached Element.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Detached Element.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Detached Element.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Detached Element.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Detached Element.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Detached Element.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Detached Element.querySelectorAll: Class selector, matching element with specified class: .class-p
-PASS Detached Element.querySelector: Class selector, matching element with specified class: .class-p
-PASS Detached Element.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Detached Element.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Detached Element.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Detached Element.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Detached Element.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Detached Element.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Detached Element.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Detached Element.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Detached Element.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Detached Element.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Detached Element.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Detached Element.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Detached Element.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Detached Element.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Detached Element.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
-PASS Detached Element.querySelector: ID selector, matching element with specified id: #id #id-div1
-PASS Detached Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Detached Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Detached Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Detached Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Detached Element.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Detached Element.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Detached Element.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
-PASS Detached Element.querySelector: ID selector, not matching non-existent descendant: #id #none
-PASS Detached Element.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Detached Element.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Detached Element.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Detached Element.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Detached Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Detached Element.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Detached Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Detached Element.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Detached Element.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Detached Element.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Detached Element.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Detached Element.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Detached Element.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Detached Element.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Detached Element.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Detached Element.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Detached Element.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Detached Element.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Detached Element.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Detached Element.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Detached Element.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Detached Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Detached Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Detached Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Detached Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Detached Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Detached Element.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Detached Element.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Detached Element.querySelectorAll: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Detached Element.querySelector: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Detached Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Detached Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Detached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Detached Element.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Detached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Detached Element.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Detached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Detached Element.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Detached Element.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Detached Element.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Detached Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Detached Element.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Detached Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Detached Element.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Detached Element.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Detached Element.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Detached Element.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Detached Element.querySelector: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Detached Element.querySelectorAll: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Detached Element.querySelector: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Detached Element.querySelectorAll: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Detached Element.querySelector: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Detached Element.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Detached Element.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Detached Element.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Detached Element.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Detached Element.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Detached Element.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Detached Element.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Detached Element.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Detached Element.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Detached Element.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Detached Element.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Detached Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Detached Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Detached Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Detached Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Detached Element.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Detached Element.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Detached Element.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Detached Element.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Detached Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Detached Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Detached Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Detached Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Detached Element.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Detached Element.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Detached Element.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Detached Element.querySelector: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Detached Element.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Detached Element.querySelector: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Detached Element.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Detached Element.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Detached Element.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Detached Element.querySelector: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Detached Element.querySelector: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Detached Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Detached Element.querySelectorAll: Slotted selector: ::slotted(foo)
-PASS Detached Element.querySelector: Slotted selector: ::slotted(foo)
-PASS Detached Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Detached Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Fragment.querySelectorAll: Type selector, matching html element: html
-PASS Fragment.querySelector: Type selector, matching html element: html
-PASS Fragment.querySelectorAll: Type selector, matching body element: body
-PASS Fragment.querySelector: Type selector, matching body element: body
-PASS Fragment.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Fragment.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
-PASS Fragment.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Fragment.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS Fragment.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Fragment.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS Fragment.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Fragment.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS Fragment.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Fragment.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Fragment.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS Fragment.querySelectorAll: Attribute presence selector, not matching title attribute, case sensitivity: #attr-presence [*|TiTlE]
-PASS Fragment.querySelector: Attribute presence selector, not matching title attribute, case sensitivity: #attr-presence [*|TiTlE]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Fragment.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS Fragment.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Fragment.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Fragment.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS Fragment.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Fragment.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Fragment.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS Fragment.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Fragment.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Fragment.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Fragment.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Fragment.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS Fragment.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Fragment.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS Fragment.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Fragment.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS Fragment.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Fragment.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS Fragment.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Fragment.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS Fragment.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Fragment.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS Fragment.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Fragment.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS Fragment.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Fragment.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS Fragment.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Fragment.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Fragment.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Fragment.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Fragment.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS Fragment.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Fragment.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS Fragment.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Fragment.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS Fragment.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Fragment.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS Fragment.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Fragment.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS Fragment.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Fragment.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS Fragment.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Fragment.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS Fragment.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Fragment.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS Fragment.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Fragment.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS Fragment.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Fragment.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS Fragment.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Fragment.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS Fragment.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Fragment.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS Fragment.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Fragment.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS Fragment.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Fragment.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS Fragment.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Fragment.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS Fragment.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Fragment.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS Fragment.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Fragment.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS Fragment.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Fragment.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS Fragment.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Fragment.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Fragment.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Fragment.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Fragment.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Fragment.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS Fragment.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Fragment.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS Fragment.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Fragment.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Fragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Fragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Fragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS Fragment.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Fragment.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS Fragment.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Fragment.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS Fragment.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Fragment.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS Fragment.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Fragment.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS Fragment.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Fragment.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS Fragment.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Fragment.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS Fragment.querySelectorAll: :root pseudo-class selector, not matching document root element: :root
-PASS Fragment.querySelector: :root pseudo-class selector, not matching document root element: :root
-PASS Fragment.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Fragment.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS Fragment.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Fragment.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS Fragment.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Fragment.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS Fragment.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Fragment.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS Fragment.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Fragment.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS Fragment.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Fragment.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS Fragment.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Fragment.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS Fragment.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Fragment.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS Fragment.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Fragment.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS Fragment.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Fragment.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS Fragment.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Fragment.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS Fragment.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Fragment.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS Fragment.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Fragment.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS Fragment.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Fragment.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS Fragment.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Fragment.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS Fragment.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Fragment.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS Fragment.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Fragment.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS Fragment.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Fragment.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS Fragment.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Fragment.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS Fragment.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Fragment.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS Fragment.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Fragment.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS Fragment.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Fragment.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS Fragment.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Fragment.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS Fragment.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Fragment.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS Fragment.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Fragment.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS Fragment.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Fragment.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS Fragment.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Fragment.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS Fragment.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Fragment.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS Fragment.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Fragment.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS Fragment.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Fragment.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS Fragment.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Fragment.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS Fragment.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Fragment.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS Fragment.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Fragment.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS Fragment.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS Fragment.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS Fragment.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS Fragment.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS Fragment.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Fragment.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS Fragment.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
-PASS Fragment.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)
-PASS Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Fragment.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Fragment.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS Fragment.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Fragment.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS Fragment.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Fragment.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS Fragment.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Fragment.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS Fragment.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Fragment.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS Fragment.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Fragment.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS Fragment.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Fragment.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS Fragment.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
-PASS Fragment.querySelector: :not pseudo-class selector, matching : #not>:not(div)
-PASS Fragment.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Fragment.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS Fragment.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
-PASS Fragment.querySelector: :not pseudo-class selector, matching nothing: :not(*)
-PASS Fragment.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Fragment.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS Fragment.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Fragment.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS Fragment.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Fragment.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS Fragment.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Fragment.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS Fragment.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Fragment.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS Fragment.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Fragment.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS Fragment.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Fragment.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS Fragment.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Fragment.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS Fragment.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Fragment.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS Fragment.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Fragment.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS Fragment.querySelectorAll: Class selector, matching element with specified class: .class-p
-PASS Fragment.querySelector: Class selector, matching element with specified class: .class-p
-PASS Fragment.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Fragment.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS Fragment.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Fragment.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS Fragment.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Fragment.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS Fragment.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Fragment.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS Fragment.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Fragment.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS Fragment.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Fragment.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
-PASS Fragment.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Fragment.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS Fragment.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
-PASS Fragment.querySelector: ID selector, matching element with specified id: #id #id-div1
-PASS Fragment.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Fragment.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS Fragment.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Fragment.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS Fragment.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Fragment.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS Fragment.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
-PASS Fragment.querySelector: ID selector, not matching non-existent descendant: #id #none
-PASS Fragment.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Fragment.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS Fragment.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Fragment.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS Fragment.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Fragment.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS Fragment.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Fragment.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS Fragment.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Fragment.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS Fragment.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Fragment.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS Fragment.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Fragment.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS Fragment.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Fragment.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS Fragment.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Fragment.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS Fragment.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Fragment.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS Fragment.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Fragment.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS Fragment.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Fragment.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS Fragment.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Fragment.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS Fragment.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Fragment.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS Fragment.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Fragment.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS Fragment.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Fragment.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS Fragment.querySelectorAll: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Fragment.querySelector: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS Fragment.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Fragment.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
-PASS Fragment.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Fragment.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS Fragment.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Fragment.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS Fragment.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Fragment.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS Fragment.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Fragment.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS Fragment.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Fragment.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS Fragment.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Fragment.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS Fragment.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Fragment.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS Fragment.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Fragment.querySelector: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS Fragment.querySelectorAll: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Fragment.querySelector: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS Fragment.querySelectorAll: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Fragment.querySelector: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS Fragment.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Fragment.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Fragment.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Fragment.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Fragment.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Fragment.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Fragment.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Fragment.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS Fragment.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Fragment.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS Fragment.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Fragment.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS Fragment.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Fragment.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS Fragment.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Fragment.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS Fragment.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Fragment.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS Fragment.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Fragment.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS Fragment.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Fragment.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS Fragment.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Fragment.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS Fragment.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Fragment.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS Fragment.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Fragment.querySelector: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS Fragment.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Fragment.querySelector: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS Fragment.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Fragment.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS Fragment.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Fragment.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS Fragment.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Fragment.querySelector: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS Fragment.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Fragment.querySelector: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS Fragment.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Fragment.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS Fragment.querySelectorAll: Slotted selector: ::slotted(foo)
-PASS Fragment.querySelector: Slotted selector: ::slotted(foo)
-PASS Fragment.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
-PASS Fragment.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
-PASS In-document Element.querySelectorAll: Type selector, matching html element: html
-PASS In-document Element.querySelector: Type selector, matching html element: html
-PASS In-document Element.querySelectorAll: Type selector, matching body element: body
-PASS In-document Element.querySelector: Type selector, matching body element: body
-PASS In-document Element.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*
-PASS In-document Element.querySelector: Universal selector, matching all children of element with specified ID: #universal>*
-PASS In-document Element.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS In-document Element.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*
-PASS In-document Element.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS In-document Element.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*
-PASS In-document Element.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS In-document Element.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS In-document Element.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS In-document Element.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]
-PASS In-document Element.querySelectorAll: Attribute presence selector, not matching title attribute, case sensitivity: #attr-presence [*|TiTlE]
-PASS In-document Element.querySelector: Attribute presence selector, not matching title attribute, case sensitivity: #attr-presence [*|TiTlE]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS In-document Element.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]
-PASS In-document Element.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS In-document Element.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS In-document Element.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]
-PASS In-document Element.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS In-document Element.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS In-document Element.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]
-PASS In-document Element.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS In-document Element.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS In-document Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS In-document Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center"
-PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS In-document Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]
-PASS In-document Element.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS In-document Element.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]
-PASS In-document Element.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS In-document Element.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS In-document Element.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS In-document Element.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]
-PASS In-document Element.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS In-document Element.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']
-PASS In-document Element.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS In-document Element.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']
-PASS In-document Element.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS In-document Element.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]
-PASS In-document Element.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS In-document Element.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]
-PASS In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS In-document Element.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]
-PASS In-document Element.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS In-document Element.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]
-PASS In-document Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS In-document Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]
-PASS In-document Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS In-document Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]
-PASS In-document Element.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS In-document Element.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]
-PASS In-document Element.querySelectorAll: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS In-document Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
-PASS In-document Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS In-document Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
-PASS In-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS In-document Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
-PASS In-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS In-document Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
-PASS In-document Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS In-document Element.querySelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
-PASS In-document Element.querySelectorAll: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS In-document Element.querySelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=" apple"]
-PASS In-document Element.querySelectorAll: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS In-document Element.querySelector: Attribute begins with selector with unquoted value, not matching class attribute not beginning with specified substring: #attr-begins [class^= apple]
-PASS In-document Element.querySelectorAll: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS In-document Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
-PASS In-document Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS In-document Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
-PASS In-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS In-document Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
-PASS In-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS In-document Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
-PASS In-document Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS In-document Element.querySelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
-PASS In-document Element.querySelectorAll: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS In-document Element.querySelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring: #attr-ends [class$="apple "]
-PASS In-document Element.querySelectorAll: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS In-document Element.querySelector: Attribute ends with selector with unquoted value, not matching class attribute not ending with specified substring: #attr-ends [class$=apple ]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS In-document Element.querySelector: Attribute contains selector, matching href attributes beginning with specified substring: #attr-contains a[href*="http://www"]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS In-document Element.querySelector: Attribute contains selector, matching href attributes ending with specified substring: #attr-contains a[href*=".org"]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS In-document Element.querySelector: Attribute contains selector, matching href attributes containing specified substring: #attr-contains a[href*=".example."]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS In-document Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
-PASS In-document Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS In-document Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
-PASS In-document Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS In-document Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
-PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS In-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
-PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS In-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
-PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS In-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring: #attr-contains [class*='ple banana ora']
-PASS In-document Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS In-document Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=" apple"]
-PASS In-document Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS In-document Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring: #attr-contains [class*="orange "]
-PASS In-document Element.querySelectorAll: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS In-document Element.querySelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring: #attr-contains [class*="ple banana ora"]
-PASS In-document Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS In-document Element.querySelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring: #attr-contains [class*= apple]
-PASS In-document Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS In-document Element.querySelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring: #attr-contains [class*=orange ]
-PASS In-document Element.querySelectorAll: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS In-document Element.querySelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring: #attr-contains [class*= banana ]
-PASS In-document Element.querySelectorAll: :root pseudo-class selector, not matching document root element: :root
-PASS In-document Element.querySelector: :root pseudo-class selector, not matching document root element: :root
-PASS In-document Element.querySelectorAll: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS In-document Element.querySelector: :nth-child selector, matching the third child element: #pseudo-nth-table1 :nth-child(3)
-PASS In-document Element.querySelectorAll: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS In-document Element.querySelector: :nth-child selector, matching every third child element: #pseudo-nth li:nth-child(3n)
-PASS In-document Element.querySelectorAll: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS In-document Element.querySelector: :nth-child selector, matching every second child element, starting from the fourth: #pseudo-nth li:nth-child(2n+4)
-PASS In-document Element.querySelectorAll: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS In-document Element.querySelector: :nth-child selector, matching every fourth child element, starting from the third: #pseudo-nth-p1 :nth-child(4n-1)
-PASS In-document Element.querySelectorAll: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS In-document Element.querySelector: :nth-last-child selector, matching the third last child element: #pseudo-nth-table1 :nth-last-child(3)
-PASS In-document Element.querySelectorAll: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS In-document Element.querySelector: :nth-last-child selector, matching every third child element from the end: #pseudo-nth li:nth-last-child(3n)
-PASS In-document Element.querySelectorAll: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS In-document Element.querySelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last: #pseudo-nth li:nth-last-child(2n+4)
-PASS In-document Element.querySelectorAll: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS In-document Element.querySelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last: #pseudo-nth-p1 :nth-last-child(4n-1)
-PASS In-document Element.querySelectorAll: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS In-document Element.querySelector: :nth-of-type selector, matching the third em element: #pseudo-nth-p1 em:nth-of-type(3)
-PASS In-document Element.querySelectorAll: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS In-document Element.querySelector: :nth-of-type selector, matching every second element of their type: #pseudo-nth-p1 :nth-of-type(2n)
-PASS In-document Element.querySelectorAll: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS In-document Element.querySelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first: #pseudo-nth-p1 span:nth-of-type(2n-1)
-PASS In-document Element.querySelectorAll: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS In-document Element.querySelector: :nth-last-of-type selector, matching the third last em element: #pseudo-nth-p1 em:nth-last-of-type(3)
-PASS In-document Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS In-document Element.querySelector: :nth-last-of-type selector, matching every second last element of their type: #pseudo-nth-p1 :nth-last-of-type(2n)
-PASS In-document Element.querySelectorAll: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS In-document Element.querySelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last: #pseudo-nth-p1 span:nth-last-of-type(2n-1)
-PASS In-document Element.querySelectorAll: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS In-document Element.querySelector: :first-of-type selector, matching the first em element: #pseudo-nth-p1 em:first-of-type
-PASS In-document Element.querySelectorAll: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS In-document Element.querySelector: :first-of-type selector, matching the first of every type of element: #pseudo-nth-p1 :first-of-type
-PASS In-document Element.querySelectorAll: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS In-document Element.querySelector: :first-of-type selector, matching the first td element in each table row: #pseudo-nth-table1 tr :first-of-type
-PASS In-document Element.querySelectorAll: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS In-document Element.querySelector: :last-of-type selector, matching the last em elemnet: #pseudo-nth-p1 em:last-of-type
-PASS In-document Element.querySelectorAll: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS In-document Element.querySelector: :last-of-type selector, matching the last of every type of element: #pseudo-nth-p1 :last-of-type
-PASS In-document Element.querySelectorAll: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS In-document Element.querySelector: :last-of-type selector, matching the last td element in each table row: #pseudo-nth-table1 tr :last-of-type
-PASS In-document Element.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS In-document Element.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-child
-PASS In-document Element.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS In-document Element.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-child
-PASS In-document Element.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS In-document Element.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-child
-PASS In-document Element.querySelectorAll: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS In-document Element.querySelector: :last-child pseudo-class selector, matching last child div element: #pseudo-last-child div:last-child
-PASS In-document Element.querySelectorAll: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS In-document Element.querySelector: :last-child pseudo-class selector, doesn't match non-last-child elements: .pseudo-last-child-div1:last-child, .pseudo-last-child-div2:first-child
-PASS In-document Element.querySelectorAll: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS In-document Element.querySelector: :last-child pseudo-class selector, matching first-child of multiple elements: #pseudo-last-child span:last-child
-PASS In-document Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS In-document Element.querySelector: :pseudo-only-child pseudo-class selector, matching all only-child elements: #pseudo-only :only-child
-PASS In-document Element.querySelectorAll: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS In-document Element.querySelector: :pseudo-only-child pseudo-class selector, matching only-child em elements: #pseudo-only em:only-child
-PASS In-document Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS In-document Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type: #pseudo-only :only-of-type
-PASS In-document Element.querySelectorAll: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS In-document Element.querySelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type: #pseudo-only em:only-of-type
-PASS In-document Element.querySelectorAll: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS In-document Element.querySelector: :empty pseudo-class selector, matching empty p elements: #pseudo-empty p:empty
-PASS In-document Element.querySelectorAll: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS In-document Element.querySelector: :empty pseudo-class selector, matching all empty elements: #pseudo-empty :empty
-PASS In-document Element.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS In-document Element.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited
-PASS In-document Element.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS In-document Element.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visited
-PASS In-document Element.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS In-document Element.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visited
-PASS In-document Element.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS In-document Element.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target
-PASS In-document Element.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
-PASS In-document Element.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)
-PASS In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS In-document Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)
-PASS In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS In-document Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)
-PASS In-document Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS In-document Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)
-PASS In-document Element.querySelectorAll: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS In-document Element.querySelector: :enabled pseudo-class selector, matching all enabled form controls: #pseudo-ui :enabled
-PASS In-document Element.querySelectorAll: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS In-document Element.querySelector: :enabled pseudo-class selector, not matching link elements: #pseudo-link :enabled
-PASS In-document Element.querySelectorAll: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS In-document Element.querySelector: :disabled pseudo-class selector, matching all disabled form controls: #pseudo-ui :disabled
-PASS In-document Element.querySelectorAll: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS In-document Element.querySelector: :disabled pseudo-class selector, not matching link elements: #pseudo-link :disabled
-PASS In-document Element.querySelectorAll: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS In-document Element.querySelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes: #pseudo-ui :checked
-PASS In-document Element.querySelectorAll: :not pseudo-class selector, matching : #not>:not(div)
-PASS In-document Element.querySelector: :not pseudo-class selector, matching : #not>:not(div)
-PASS In-document Element.querySelectorAll: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS In-document Element.querySelector: :not pseudo-class selector, matching : #not * :not(:first-child)
-PASS In-document Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*)
-PASS In-document Element.querySelector: :not pseudo-class selector, matching nothing: :not(*)
-PASS In-document Element.querySelectorAll: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS In-document Element.querySelector: :not pseudo-class selector, matching nothing: :not(*|*)
-PASS In-document Element.querySelectorAll: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS In-document Element.querySelector: :not pseudo-class selector argument surrounded by spaces, matching : #not>:not( div )
-PASS In-document Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS In-document Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line
-PASS In-document Element.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS In-document Element.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line
-PASS In-document Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS In-document Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter
-PASS In-document Element.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS In-document Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter
-PASS In-document Element.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS In-document Element.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:before
-PASS In-document Element.querySelectorAll: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS In-document Element.querySelector: ::before pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::before
-PASS In-document Element.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS In-document Element.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:after
-PASS In-document Element.querySelectorAll: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS In-document Element.querySelector: ::after pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::after
-PASS In-document Element.querySelectorAll: Class selector, matching element with specified class: .class-p
-PASS In-document Element.querySelector: Class selector, matching element with specified class: .class-p
-PASS In-document Element.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS In-document Element.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.banana
-PASS In-document Element.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS In-document Element.querySelector: Class Selector, chained, with type selector: div.apple.banana.orange
-PASS In-document Element.querySelectorAll: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS In-document Element.querySelector: Class selector, matching element with class value using non-ASCII characters (1): .台北Táiběi
-PASS In-document Element.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS In-document Element.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北
-PASS In-document Element.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS In-document Element.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1): .台北Táiběi.台北
-PASS In-document Element.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:bar
-PASS In-document Element.querySelector: Class selector, matching element with class with escaped character: .foo\:bar
-PASS In-document Element.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS In-document Element.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]bar
-PASS In-document Element.querySelectorAll: ID selector, matching element with specified id: #id #id-div1
-PASS In-document Element.querySelector: ID selector, matching element with specified id: #id #id-div1
-PASS In-document Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS In-document Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1
-PASS In-document Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS In-document Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2
-PASS In-document Element.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS In-document Element.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2
-PASS In-document Element.querySelectorAll: ID selector, not matching non-existent descendant: #id #none
-PASS In-document Element.querySelector: ID selector, not matching non-existent descendant: #id #none
-PASS In-document Element.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS In-document Element.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1
-PASS In-document Element.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS In-document Element.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicate
-PASS In-document Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS In-document Element.querySelector: ID selector, matching id value using non-ASCII characters (1): #台北Táiběi
-PASS In-document Element.querySelectorAll: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS In-document Element.querySelector: ID selector, matching id value using non-ASCII characters (2): #台北
-PASS In-document Element.querySelectorAll: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS In-document Element.querySelector: ID selector, matching id values using non-ASCII characters (1): #台北Táiběi, #台北
-PASS In-document Element.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS In-document Element.querySelector: ID selector, matching element with id with escaped character: #\#foo\:bar
-PASS In-document Element.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS In-document Element.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]bar
-PASS In-document Element.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS In-document Element.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|div
-PASS In-document Element.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS In-document Element.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |div
-PASS In-document Element.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS In-document Element.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS In-document Element.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant div
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
-PASS In-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS In-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS In-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS In-document Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2
-PASS In-document Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS In-document Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3
-PASS In-document Element.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS In-document Element.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4
-PASS In-document Element.querySelectorAll: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS In-document Element.querySelector: Descendant combinator, whitespace characters: #descendant \r
-#descendant-div2
-PASS In-document Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
-PASS In-document Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
-PASS In-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS In-document Element.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1
-PASS In-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS In-document Element.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1
-PASS In-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS In-document Element.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2
-PASS In-document Element.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS In-document Element.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2
-PASS In-document Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS In-document Element.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3
-PASS In-document Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS In-document Element.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3
-PASS In-document Element.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS In-document Element.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3
-PASS In-document Element.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS In-document Element.querySelector: Child combinator, surrounded by whitespace: #child-div1 \r
-> \r
-#child-div2
-PASS In-document Element.querySelectorAll: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS In-document Element.querySelector: Child combinator, whitespace after: #child-div1> \r
-#child-div2
-PASS In-document Element.querySelectorAll: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS In-document Element.querySelector: Child combinator, whitespace before: #child-div1 \r
->#child-div2
-PASS In-document Element.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2
-PASS In-document Element.querySelector: Child combinator, no whitespace: #child-div1>#child-div2
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+div
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS In-document Element.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+p
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS In-document Element.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS In-document Element.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 \r
-+ \r
-#adjacent-p3
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS In-document Element.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ \r
-#adjacent-p3
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS In-document Element.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 \r
-+#adjacent-p3
-PASS In-document Element.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS In-document Element.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3
-PASS In-document Element.querySelectorAll: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS In-document Element.querySelector: General sibling combinator, matching element that is a sibling of an element with id: #sibling-div2~div
-PASS In-document Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS In-document Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element: div~#sibling-div4
-PASS In-document Element.querySelectorAll: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS In-document Element.querySelector: General sibling combinator, matching element with id that is a sibling of an element with id: #sibling-div2~#sibling-div4
-PASS In-document Element.querySelectorAll: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS In-document Element.querySelector: General sibling combinator, matching element with class that is a sibling of an element with id: #sibling-div2~.sibling-div
-PASS In-document Element.querySelectorAll: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS In-document Element.querySelector: General sibling combinator, matching p element that is a sibling of a div element: #sibling div~p
-PASS In-document Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS In-document Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after a p element: #sibling>p~div
-PASS In-document Element.querySelectorAll: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS In-document Element.querySelector: General sibling combinator, not matching element with id that is not a sibling after an element with id: #sibling-div2~#sibling-div3, #sibling-div2~#sibling-div1
-PASS In-document Element.querySelectorAll: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS In-document Element.querySelector: General sibling combinator, surrounded by whitespace: #sibling-p2 \r
-~ \r
-#sibling-p3
-PASS In-document Element.querySelectorAll: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS In-document Element.querySelector: General sibling combinator, whitespace after: #sibling-p2~ \r
-#sibling-p3
-PASS In-document Element.querySelectorAll: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS In-document Element.querySelector: General sibling combinator, whitespace before: #sibling-p2 \r
-~#sibling-p3
-PASS In-document Element.querySelectorAll: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS In-document Element.querySelector: General sibling combinator, no whitespace: #sibling-p2~#sibling-p3
-PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS In-document Element.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em \r
-, \r
-#group strong
-PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS In-document Element.querySelector: Syntax, group of selectors separator, whitespace after: #group em, \r
-#group strong
-PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS In-document Element.querySelector: Syntax, group of selectors separator, whitespace before: #group em \r
-,#group strong
-PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS In-document Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong
-PASS In-document Element.querySelectorAll: Slotted selector: ::slotted(foo)
-PASS In-document Element.querySelector: Slotted selector: ::slotted(foo)
-PASS In-document Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo
-PASS In-document Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/dom/nodes/selectors.js b/third_party/blink/web_tests/external/wpt/dom/nodes/selectors.js
index c1680cedd708d3..decc983e931925 100644
--- a/third_party/blink/web_tests/external/wpt/dom/nodes/selectors.js
+++ b/third_party/blink/web_tests/external/wpt/dom/nodes/selectors.js
@@ -219,7 +219,7 @@ var validSelectors = [
// Implementations may treat all visited links as unvisited, so these cannot be tested separately.
// The only guarantee is that ":link,:visited" matches the set of all visited and unvisited links and that they are individually mutually exclusive sets.
{name: ":link and :visited pseudo-class selectors, matching a and area elements with href attributes", selector: "#pseudo-link :link, #pseudo-link :visited", expect: ["pseudo-link-a1", "pseudo-link-a2", "pseudo-link-area1"], level: 1, testType: TEST_QSA | TEST_MATCH},
- {name: ":link and :visited pseudo-class selectors, matching link elements with href attributes", selector: "#head :link, #head :visited", expect: ["pseudo-link-link1", "pseudo-link-link2"], exclude: ["element", "fragment", "detached"], level: 1, testType: TEST_QSA | TEST_MATCH},
+ {name: ":link and :visited pseudo-class selectors, matching no elements", selector: "#head :link, #head :visited", expect: [] /*no matches*/, exclude: ["element", "fragment", "detached"], level: 1, testType: TEST_QSA | TEST_MATCH},
{name: ":link and :visited pseudo-class selectors, not matching link elements with href attributes", selector: "#head :link, #head :visited", expect: [] /*no matches*/, exclude: ["document"], level: 1, testType: TEST_QSA},
{name: ":link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing", selector: ":link:visited", expect: [] /*no matches*/, exclude: ["document"], level: 1, testType: TEST_QSA},
@@ -600,7 +600,7 @@ var scopedSelectors = [
// Implementations may treat all visited links as unvisited, so these cannot be tested separately.
// The only guarantee is that ":link,:visited" matches the set of all visited and unvisited links and that they are individually mutually exclusive sets.
{name: ":link and :visited pseudo-class selectors, matching a and area elements with href attributes", selector: " :link, #pseudo-link :visited", ctx: "#pseudo-link", expect: ["pseudo-link-a1", "pseudo-link-a2", "pseudo-link-area1"], level: 1, testType: TEST_FIND | TEST_MATCH},
- {name: ":link and :visited pseudo-class selectors, matching link elements with href attributes", selector: " :link, #head :visited", ctx: "#head", expect: ["pseudo-link-link1", "pseudo-link-link2"], exclude: ["element", "fragment", "detached"], level: 1, testType: TEST_FIND | TEST_MATCH},
+ {name: ":link and :visited pseudo-class selectors, matching no elements", selector: " :link, #head :visited", ctx: "#head", expect: [] /*no matches*/, exclude: ["element", "fragment", "detached"], level: 1, testType: TEST_FIND | TEST_MATCH},
{name: ":link and :visited pseudo-class selectors, not matching link elements with href attributes", selector: " :link, #head :visited", ctx: "#head", expect: [] /*no matches*/, exclude: ["document"], level: 1, testType: TEST_FIND},
{name: ":link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing", selector: ":link:visited", ctx: "#html", expect: [] /*no matches*/, exclude: ["document"], level: 1, testType: TEST_FIND},
diff --git a/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html b/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html
index bca61372b4c8b1..7808434f05a49b 100644
--- a/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html
+++ b/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html
@@ -81,10 +81,42 @@
}, 'follow hyperlink <'+tag+' href>');
}
-'a, area, link'.split(', ').forEach(function(str) {
+'a, area'.split(', ').forEach(function(str) {
test_follow_link(str);
});
+async_test(function() {
+ const iframe = document.createElement('iframe');
+ iframe.name = 'test_dont_follow_link';
+ document.body.appendChild(iframe);
+
+ const link = document.createElement('link');
+ link.target = iframe.name;
+ link.setAttribute('href', input_url_html);
+ document.body.appendChild(link);
+
+ const anchor = document.createElement('a');
+ anchor.target = iframe.name;
+ anchor.setAttribute('href', blank);
+ document.body.appendChild(anchor);
+
+ this.add_cleanup(function() {
+ iframe.remove();
+ link.remove();
+ anchor.remove();
+ });
+
+ iframe.onload = this.step_func_done(() => {
+ assert_equals(
+ iframe.contentDocument.location.pathname,
+ '/html/infrastructure/urls/resolving-urls/query-encoding/resources/blank.py',
+ 'The navigation should occur instead of the navigation.');
+ });
+
+ anchor.click();
+ link.click();
+}, `don't follow hyperlink `);
+
// follow hyperlink with ping attribute
function test_follow_link_ping(tag) {
async_test(function() {
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link-expected.txt
deleted file mode 100644
index 408e1087675a47..00000000000000
--- a/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a testharness.js-based test.
-FAIL Only s, s and s that have a href attribute match ':link' assert_array_equals: lengths differ, expected array [Element node , Element node , Element node , Element node ] length 7, got [Element node , Element node , Element node ] length 3
-FAIL ':link' doesn't match elements whos href attribute has been removed assert_array_equals: lengths differ, expected array [Element node , Element node , Element node ] length 6, got [Element node , Element node , Element node ] length 3
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link.html b/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link.html
index 05067dd2ecf39f..e9733eca70afd2 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link.html
@@ -17,8 +17,5 @@