pax_global_header00006660000000000000000000000064126243410640014514gustar00rootroot0000000000000052 comment=fd6b9f62146efec8e17ee80ddaebdfb6ede21d7b css-what-2.1.0/000077500000000000000000000000001262434106400132455ustar00rootroot00000000000000css-what-2.1.0/.travis.yml000066400000000000000000000001521262434106400153540ustar00rootroot00000000000000sudo: false language: node_js node_js: - 0.8 - "0.10" - 0.11 before_install: - npm install -g npm css-what-2.1.0/LICENSE000066400000000000000000000023541262434106400142560ustar00rootroot00000000000000Copyright (c) Felix Böhm All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. css-what-2.1.0/index.js000066400000000000000000000141111262434106400147100ustar00rootroot00000000000000"use strict"; module.exports = parse; var re_name = /^(?:\\.|[\w\-\u00c0-\uFFFF])+/, re_escape = /\\([\da-f]{1,6}\s?|(\s)|.)/ig, //modified version of https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L87 re_attr = /^\s*((?:\\.|[\w\u00c0-\uFFFF\-])+)\s*(?:(\S?)=\s*(?:(['"])(.*?)\3|(#?(?:\\.|[\w\u00c0-\uFFFF\-])*)|)|)\s*(i)?\]/; var actionTypes = { __proto__: null, "undefined": "exists", "": "equals", "~": "element", "^": "start", "$": "end", "*": "any", "!": "not", "|": "hyphen" }; var simpleSelectors = { __proto__: null, ">": "child", "<": "parent", "~": "sibling", "+": "adjacent" }; var attribSelectors = { __proto__: null, "#": ["id", "equals"], ".": ["class", "element"] }; //pseudos, whose data-property is parsed as well var unpackPseudos = { __proto__: null, "has": true, "not": true, "matches": true }; var stripQuotesFromPseudos = { __proto__: null, "contains": true, "icontains": true }; var quotes = { __proto__: null, "\"": true, "'": true }; //unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L139 function funescape( _, escaped, escapedWhitespace ) { var high = "0x" + escaped - 0x10000; // NaN means non-codepoint // Support: Firefox // Workaround erroneous numeric interpretation of +"0x" return high !== high || escapedWhitespace ? escaped : // BMP codepoint high < 0 ? String.fromCharCode( high + 0x10000 ) : // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); } function unescapeCSS(str){ return str.replace(re_escape, funescape); } function isWhitespace(c){ return c === " " || c === "\n" || c === "\t" || c === "\f" || c === "\r"; } function parse(selector, options){ var subselects = []; selector = parseSelector(subselects, selector + "", options); if(selector !== ""){ throw new SyntaxError("Unmatched selector: " + selector); } return subselects; } function parseSelector(subselects, selector, options){ var tokens = [], sawWS = false, data, firstChar, name, quot; function getName(){ var sub = selector.match(re_name)[0]; selector = selector.substr(sub.length); return unescapeCSS(sub); } function stripWhitespace(start){ while(isWhitespace(selector.charAt(start))) start++; selector = selector.substr(start); } stripWhitespace(0); while(selector !== ""){ firstChar = selector.charAt(0); if(isWhitespace(firstChar)){ sawWS = true; stripWhitespace(1); } else if(firstChar in simpleSelectors){ tokens.push({type: simpleSelectors[firstChar]}); sawWS = false; stripWhitespace(1); } else if(firstChar === ","){ if(tokens.length === 0){ throw new SyntaxError("empty sub-selector"); } subselects.push(tokens); tokens = []; sawWS = false; stripWhitespace(1); } else { if(sawWS){ if(tokens.length > 0){ tokens.push({type: "descendant"}); } sawWS = false; } if(firstChar === "*"){ selector = selector.substr(1); tokens.push({type: "universal"}); } else if(firstChar in attribSelectors){ selector = selector.substr(1); tokens.push({ type: "attribute", name: attribSelectors[firstChar][0], action: attribSelectors[firstChar][1], value: getName(), ignoreCase: false }); } else if(firstChar === "["){ selector = selector.substr(1); data = selector.match(re_attr); if(!data){ throw new SyntaxError("Malformed attribute selector: " + selector); } selector = selector.substr(data[0].length); name = unescapeCSS(data[1]); if( !options || ( "lowerCaseAttributeNames" in options ? options.lowerCaseAttributeNames : !options.xmlMode ) ){ name = name.toLowerCase(); } tokens.push({ type: "attribute", name: name, action: actionTypes[data[2]], value: unescapeCSS(data[4] || data[5] || ""), ignoreCase: !!data[6] }); } else if(firstChar === ":"){ if(selector.charAt(1) === ":"){ selector = selector.substr(2); tokens.push({type: "pseudo-element", name: getName().toLowerCase()}); continue; } selector = selector.substr(1); name = getName().toLowerCase(); data = null; if(selector.charAt(0) === "("){ if(name in unpackPseudos){ quot = selector.charAt(1); var quoted = quot in quotes; selector = selector.substr(quoted + 1); data = []; selector = parseSelector(data, selector, options); if(quoted){ if(selector.charAt(0) !== quot){ throw new SyntaxError("unmatched quotes in :" + name); } else { selector = selector.substr(1); } } if(selector.charAt(0) !== ")"){ throw new SyntaxError("missing closing parenthesis in :" + name + " " + selector); } selector = selector.substr(1); } else { var pos = 1, counter = 1; for(; counter > 0 && pos < selector.length; pos++){ if(selector.charAt(pos) === "(") counter++; else if(selector.charAt(pos) === ")") counter--; } if(counter){ throw new SyntaxError("parenthesis not matched"); } data = selector.substr(1, pos - 2); selector = selector.substr(pos); if(name in stripQuotesFromPseudos){ quot = data.charAt(0); if(quot === data.slice(-1) && quot in quotes){ data = data.slice(1, -1); } data = unescapeCSS(data); } } } tokens.push({type: "pseudo", name: name, data: data}); } else if(re_name.test(selector)){ name = getName(); if(!options || ("lowerCaseTags" in options ? options.lowerCaseTags : !options.xmlMode)){ name = name.toLowerCase(); } tokens.push({type: "tag", name: name}); } else { if(tokens.length && tokens[tokens.length - 1].type === "descendant"){ tokens.pop(); } addToken(subselects, tokens); return selector; } } } addToken(subselects, tokens); return selector; } function addToken(subselects, tokens){ if(subselects.length > 0 && tokens.length === 0){ throw new SyntaxError("empty sub-selector"); } subselects.push(tokens); } css-what-2.1.0/package.json000066400000000000000000000015411262434106400155340ustar00rootroot00000000000000{ "author": "Felix Böhm (http://feedic.com)", "name": "css-what", "description": "a CSS selector parser", "version": "2.1.0", "repository": { "url": "https://github.com/fb55/css-what" }, "main": "./index.js", "files": [ "index.js" ], "scripts": { "test": "node tests/test.js && jshint *.js" }, "dependencies": {}, "devDependencies": { "jshint": "2" }, "optionalDependencies": {}, "engines": { "node": "*" }, "license": "BSD-like", "jshintConfig": { "eqeqeq": true, "freeze": true, "latedef": "nofunc", "noarg": true, "nonbsp": true, "quotmark": "double", "undef": true, "unused": true, "trailing": true, "eqnull": true, "proto": true, "smarttabs": true, "node": true, "globals": { "describe": true, "it": true } } } css-what-2.1.0/readme.md000066400000000000000000000034571262434106400150350ustar00rootroot00000000000000# css-what [![Build Status](https://secure.travis-ci.org/fb55/css-what.svg?branch=master)](http://travis-ci.org/fb55/css-what) a CSS selector parser ## Example ```js require('css-what')('foo[bar]:baz') ~> [ [ { type: 'tag', name: 'foo' }, { type: 'attribute', name: 'bar', action: 'exists', value: '', ignoreCase: false }, { type: 'pseudo', name: 'baz', data: null } ] ] ``` ## API __`CSSwhat(selector, options)` - Parses `str`, with the passed `options`.__ The function returns a two-dimensional array. The first array represents selectors separated by commas (eg. `sub1, sub2`), the second contains the relevant tokens for that selector. Possible token types are: name | attributes | example | output ---- | ---------- | ------- | ------ `tag`| `name` | `div` | `{ type: 'tag', name: 'div' }` `universal`| - | `*` | `{ type: 'universal' }` `pseudo`| `name`, `data`|`:name(data)`| `{ type: 'pseudo', name: 'name', data: 'data' }` `pseudo`| `name`, `data`|`:name`| `{ type: 'pseudo', name: 'name', data: null }` `attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr]`|`{ type: 'attribute', name: 'attr', action: 'exists', value: '', ignoreCase: false }` `attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr=val]`|`{ type: 'attribute', name: 'attr', action: 'equals', value: 'val', ignoreCase: false }` `attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr^=val]`|`{ type: 'attribute', name: 'attr', action: 'start', value: 'val', ignoreCase: false }` `attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr$=val]`|`{ type: 'attribute', name: 'attr', action: 'end', value: 'val', ignoreCase: false }` //TODO complete list __Options:__ - `xmlMode`: When enabled, tag names will be case-sensitive (meaning they won't be lowercased). --- License: BSD-like css-what-2.1.0/stringify.js000066400000000000000000000030051262434106400156170ustar00rootroot00000000000000var actionTypes = { "equals": "", "element": "~", "start": "^", "end": "$", "any": "*", "not": "!", "hyphen": "|" }; var simpleSelectors = { __proto__: null, child: " > ", parent: " < ", sibling: " ~ ", adjacent: " + ", descendant: " ", universal: "*" }; module.exports = stringify; function stringify(token){ return token.map(stringifySubselector).join(", "); } function stringifySubselector(token){ return token.map(stringifyToken).join(""); } function stringifyToken(token){ if(token.type in simpleSelectors) return simpleSelectors[token.type]; if(token.type === "tag") return escapeName(token.name); if(token.type === "attribute"){ if(token.action === "exists") return "[" + escapeName(token.name) + "]"; if(token.name === "id" && token.action === "equals" && !token.ignoreCase) return "#" + escapeName(token.value); if(token.name === "class" && token.action === "element" && !token.ignoreCase) return "." + escapeName(token.value); return "[" + escapeName(token.name) + actionTypes[token.action] + "='" + escapeName(token.value) + "'" + (token.ignoreCase ? "i" : "") + "]"; } if(token.type === "pseudo"){ if(token.data === null) return ":" + escapeName(token.name); if(typeof token.data === "string") return ":" + escapeName(token.name) + "(" + token.data + ")"; return ":" + escapeName(token.name) + "(" + stringify(token.data) + ")"; } } function escapeName(str){ //TODO return str; } css-what-2.1.0/tests/000077500000000000000000000000001262434106400144075ustar00rootroot00000000000000css-what-2.1.0/tests/out.json000066400000000000000000010305361262434106400161210ustar00rootroot00000000000000{ "": [ [] ], "\t": [ [] ], "\t#qunit-fixture p": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "\n#qunit-fixture p": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "\f#qunit-fixture p": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "\r#qunit-fixture p": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], " ": [ [] ], " #qunit-fixture p": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], " a ": [ [ { "type": "tag", "name": "a" } ] ], " p ": [ [ { "type": "tag", "name": "p" } ] ], "#__sizzle__": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "__sizzle__", "ignoreCase": false } ] ], "#ap :nth-last-of-type(0n+3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "0n+3" } ] ], "#ap :nth-last-of-type(2n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "2n" } ] ], "#ap :nth-last-of-type(2n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "2n+1" } ] ], "#ap :nth-last-of-type(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "3" } ] ], "#ap :nth-last-of-type(even)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "even" } ] ], "#ap :nth-last-of-type(n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "n" } ] ], "#ap :nth-last-of-type(odd)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "odd" } ] ], "#ap :nth-of-type(0n+3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-of-type", "data": "0n+3" } ] ], "#ap :nth-of-type(2n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-of-type", "data": "2n" } ] ], "#ap :nth-of-type(2n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-of-type", "data": "2n+1" } ] ], "#ap :nth-of-type(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-of-type", "data": "3" } ] ], "#ap :nth-of-type(even)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-of-type", "data": "even" } ] ], "#ap :nth-of-type(n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-of-type", "data": "n" } ] ], "#ap :nth-of-type(odd)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-of-type", "data": "odd" } ] ], "#ap a[hreflang!='en']": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "hreflang", "action": "not", "value": "en", "ignoreCase": false } ] ], "#ap:has(*), #ap:has(*)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ] ] } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ] ] } ] ], "#asdfasdf #foobar": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "asdfasdf", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "foobar", "ignoreCase": false } ] ], "#attr-child-boosh": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attr-child-boosh", "ignoreCase": false } ] ], "#attributes a[href=\"#aname\"]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "equals", "value": "#aname", "ignoreCase": false } ] ], "#attributes div[test$=foo]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "end", "value": "foo", "ignoreCase": false } ] ], "#attributes div[test*=hree]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "any", "value": "hree", "ignoreCase": false } ] ], "#attributes div[test=\"two-foo\"]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "equals", "value": "two-foo", "ignoreCase": false } ] ], "#attributes div[test='two-foo']": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "equals", "value": "two-foo", "ignoreCase": false } ] ], "#attributes div[test=two-foo]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "equals", "value": "two-foo", "ignoreCase": false } ] ], "#attributes div[test^=two]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "start", "value": "two", "ignoreCase": false } ] ], "#attributes div[test|=\"two-foo\"]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "hyphen", "value": "two-foo", "ignoreCase": false } ] ], "#attributes div[test|=two]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "hyphen", "value": "two", "ignoreCase": false } ] ], "#attributes div[test~=three]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "element", "value": "three", "ignoreCase": false } ] ], "#attributes div[unique-test]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "attributes", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "unique-test", "action": "exists", "value": "", "ignoreCase": false } ] ], "#backslash\\\\foo": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "backslash\\foo", "ignoreCase": false } ] ], "#blargh": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "blargh", "ignoreCase": false } ] ], "#body": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "body", "ignoreCase": false } ] ], "#boosh": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false } ] ], "#boosh #booshTest": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "booshTest", "ignoreCase": false } ] ], "#boosh *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" } ] ], "#boosh .a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false } ] ], "#boosh div": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "#boosh div div": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "#boosh div,#boosh span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "span" } ] ], "#boosh div.a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false } ] ], "#boosh div[test=fg]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "equals", "value": "fg", "ignoreCase": false } ] ], "#boosh div[test]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "test", "action": "exists", "value": "", "ignoreCase": false } ] ], "#boosh span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "span" } ] ], "#boosh,#boosh": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false } ] ], "#boosh,.apples,#boosh": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false } ], [ { "type": "attribute", "name": "class", "action": "element", "value": "apples", "ignoreCase": false } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false } ] ], "#boosh>.a>#booshTest": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "booshTest", "ignoreCase": false } ] ], "#booshTest": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "booshTest", "ignoreCase": false } ] ], "#direct-descend > .direct-descend": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "direct-descend", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "direct-descend", "ignoreCase": false } ] ], "#direct-descend > .direct-descend > .lvl2": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "direct-descend", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "direct-descend", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "lvl2", "ignoreCase": false } ] ], "#dupContainer span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "dupContainer", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "span" } ] ], "#dupL1": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "dupL1", "ignoreCase": false } ] ], "#dupL2": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "dupL2", "ignoreCase": false } ] ], "#emem": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "emem", "ignoreCase": false } ] ], "#first ~ div": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "first", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "div" } ] ], "#firstUL > *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "firstUL", "ignoreCase": false }, { "type": "child" }, { "type": "universal" } ] ], "#firstp #foobar": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "firstp", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "foobar", "ignoreCase": false } ] ], "#firstp #simon1": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "firstp", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "simon1", "ignoreCase": false } ] ], "#fixtures": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "fixtures", "ignoreCase": false } ] ], "#fixtures a *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "fixtures", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "descendant" }, { "type": "universal" } ] ], "#fixtures h1": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "fixtures", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "h1" } ] ], "#foo": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "foo", "ignoreCase": false } ] ], "#foo > *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "foo", "ignoreCase": false }, { "type": "child" }, { "type": "universal" } ] ], "#foo a:not(.blog)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "foo", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "blog", "ignoreCase": false } ] ] } ] ], "#foo a:not(.blog.link)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "foo", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "blog", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "link", "ignoreCase": false } ] ] } ] ], "#foo a:not(.link)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "foo", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "link", "ignoreCase": false } ] ] } ] ], "#foo\\:bar": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "foo:bar", "ignoreCase": false } ] ], "#foo\\:bar span:not(:input)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "foo:bar", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "span" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "input", "data": null } ] ] } ] ], "#form": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false } ] ], "#form #first": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "first", "ignoreCase": false } ] ], "#form :checkbox": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "checkbox", "data": null } ] ], "#form :checkbox:checked": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "checkbox", "data": null }, { "type": "pseudo", "name": "checked", "data": null } ] ], "#form :input": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "input", "data": null } ] ], "#form :radio": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "radio", "data": null } ] ], "#form :radio:checked": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "radio", "data": null }, { "type": "pseudo", "name": "checked", "data": null } ] ], "#form :radio:checked, #form :checkbox:checked": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "radio", "data": null }, { "type": "pseudo", "name": "checked", "data": null } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "checkbox", "data": null }, { "type": "pseudo", "name": "checked", "data": null } ] ], "#form :text": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "text", "data": null } ] ], "#form > #option1a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "option1a", "ignoreCase": false } ] ], "#form > #radio1": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "radio1", "ignoreCase": false } ] ], "#form [for=action]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "for", "action": "equals", "value": "action", "ignoreCase": false } ] ], "#form input[type='radio'], #form input[type=\"hidden\"]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "type", "action": "equals", "value": "radio", "ignoreCase": false } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "type", "action": "equals", "value": "hidden", "ignoreCase": false } ] ], "#form input[type='radio'], #form input[type='hidden']": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "type", "action": "equals", "value": "radio", "ignoreCase": false } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "type", "action": "equals", "value": "hidden", "ignoreCase": false } ] ], "#form input[type='radio'], #form input[type=hidden]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "type", "action": "equals", "value": "radio", "ignoreCase": false } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "type", "action": "equals", "value": "hidden", "ignoreCase": false } ] ], "#form input[type=search]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "type", "action": "equals", "value": "search", "ignoreCase": false } ] ], "#form input[type=text]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "type", "action": "equals", "value": "text", "ignoreCase": false } ] ], "#form option:checked": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "checked", "data": null } ] ], "#form option:not(:contains(Nothing),#option1b,:selected)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "contains", "data": "Nothing" } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "option1b", "ignoreCase": false } ], [ { "type": "pseudo", "name": "selected", "data": null } ] ] } ] ], "#form option:not(:not(:selected))[id^='option3']": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "selected", "data": null } ] ] } ] ] }, { "type": "attribute", "name": "id", "action": "start", "value": "option3", "ignoreCase": false } ] ], "#form option:selected": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "selected", "data": null } ] ], "#form select:has(option:first-child:contains('o'))": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "select" }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "first-child", "data": null }, { "type": "pseudo", "name": "contains", "data": "o" } ] ] } ] ], "#form select:not(.select1):contains(Nothing) > option:not(option)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "select" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "select1", "ignoreCase": false } ] ] }, { "type": "pseudo", "name": "contains", "data": "Nothing" }, { "type": "child" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "option" } ] ] } ] ], "#form select:not([multiple])": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "select" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "multiple", "action": "exists", "value": "", "ignoreCase": false } ] ] } ] ], "#form select:not([name='select1'])": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "select" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "select1", "ignoreCase": false } ] ] } ] ], "#form select:not([name=select1])": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "select" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "select1", "ignoreCase": false } ] ] } ] ], "#grandfather > div:not(#uncle) #son": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "grandfather", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "uncle", "ignoreCase": false } ] ] }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "son", "ignoreCase": false } ] ], "#groups ~ a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "groups", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "a" } ] ], "#hidden1:enabled": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "hidden1", "ignoreCase": false }, { "type": "pseudo", "name": "enabled", "data": null } ] ], "#hsoob": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "hsoob", "ignoreCase": false } ] ], "#hsoob #spanny": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "hsoob", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "spanny", "ignoreCase": false } ] ], "#hsoob .a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "hsoob", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false } ] ], "#hsoob > div > .h": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "hsoob", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "div" }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "h", "ignoreCase": false } ] ], "#hsoob div": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "hsoob", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "#hsoob div div": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "hsoob", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "#hsoob div.a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "hsoob", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false } ] ], "#hsoob span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "hsoob", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "span" } ] ], "#idTest": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "idTest", "ignoreCase": false } ] ], "#item_1": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "item_1", "ignoreCase": false } ] ], "#item_3": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "item_3", "ignoreCase": false } ] ], "#length ~ input": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "length", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "input" } ] ], "#lengthtest": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "lengthtest", "ignoreCase": false } ] ], "#level1 *:first-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "#level1 *:last-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "#level1 *:only-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "pseudo", "name": "only-child", "data": null } ] ], "#level1 *[id$=\"_1\"]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "attribute", "name": "id", "action": "end", "value": "_1", "ignoreCase": false } ] ], "#level1 *[id$=_1]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "attribute", "name": "id", "action": "end", "value": "_1", "ignoreCase": false } ] ], "#level1 *[id*=\"2\"]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "attribute", "name": "id", "action": "any", "value": "2", "ignoreCase": false } ] ], "#level1 *[id^=\"level2_\"]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "attribute", "name": "id", "action": "start", "value": "level2_", "ignoreCase": false } ] ], "#level1 *[id^=level2_]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "attribute", "name": "id", "action": "start", "value": "level2_", "ignoreCase": false } ] ], "#level1 > span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "span" } ] ], "#level1 div:last-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "#level1 span:first-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "span" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "#level1:first-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "#level1:only-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "pseudo", "name": "only-child", "data": null } ] ], "#level1>*:first-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "child" }, { "type": "universal" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "#level1>*:last-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "child" }, { "type": "universal" }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "#level1>*:only-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "child" }, { "type": "universal" }, { "type": "pseudo", "name": "only-child", "data": null } ] ], "#level1>div:first-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "#level1>div:last-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "#level1>span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "span" } ] ], "#level1>span:last-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level1", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "span" }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "#level2_1 + *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_1", "ignoreCase": false }, { "type": "adjacent" }, { "type": "universal" } ] ], "#level2_1 + span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_1", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "span" } ] ], "#level2_1 > *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_1", "ignoreCase": false }, { "type": "child" }, { "type": "universal" } ] ], "#level2_1 ~ *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_1", "ignoreCase": false }, { "type": "sibling" }, { "type": "universal" } ] ], "#level2_1 ~ span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_1", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "span" } ] ], "#level2_1+span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_1", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "span" } ] ], "#level2_2 + span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_2", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "span" } ] ], "#level2_2 :only-child:not(:first-child)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_2", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "only-child", "data": null }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "first-child", "data": null } ] ] } ] ], "#level2_2 :only-child:not(:last-child)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_2", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "only-child", "data": null }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "last-child", "data": null } ] ] } ] ], "#level2_2 ~ span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level2_2", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "span" } ] ], "#level3_1 + *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level3_1", "ignoreCase": false }, { "type": "adjacent" }, { "type": "universal" } ] ], "#level3_1 + em": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level3_1", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "em" } ] ], "#level3_1 + span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level3_1", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "span" } ] ], "#level3_1 ~ #level3_2": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level3_1", "ignoreCase": false }, { "type": "sibling" }, { "type": "attribute", "name": "id", "action": "equals", "value": "level3_2", "ignoreCase": false } ] ], "#level3_1 ~ em": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level3_1", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "em" } ] ], "#level3_1:empty": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level3_1", "ignoreCase": false }, { "type": "pseudo", "name": "empty", "data": null } ] ], "#level3_2 + *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level3_2", "ignoreCase": false }, { "type": "adjacent" }, { "type": "universal" } ] ], "#level3_2 ~ *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "level3_2", "ignoreCase": false }, { "type": "sibling" }, { "type": "universal" } ] ], "#link_2.internal": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "link_2", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false } ] ], "#link_2.internal.highlight": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "link_2", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "highlight", "ignoreCase": false } ] ], "#link_2.internal.nonexistent": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "link_2", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "nonexistent", "ignoreCase": false } ] ], "#list > li:nth-child(-n+2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "list", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-child", "data": "-n+2" } ] ], "#list > li:nth-child(n+2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "list", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-child", "data": "n+2" } ] ], "#list li:not(#item_1):not(#item_3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "list", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "item_1", "ignoreCase": false } ] ] }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "item_3", "ignoreCase": false } ] ] } ] ], "#list>li": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "list", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "li" } ] ], "#listWithTabIndex": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "listWithTabIndex", "ignoreCase": false } ] ], "#liveHandlerOrder ~ div em:contains('1')": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "liveHandlerOrder", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "em" }, { "type": "pseudo", "name": "contains", "data": "1" } ] ], "#lonelyBoosh": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "lonelyBoosh", "ignoreCase": false } ] ], "#lonelyHsoob": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "lonelyHsoob", "ignoreCase": false } ] ], "#moretests script[src]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "moretests", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "script" }, { "type": "attribute", "name": "src", "action": "exists", "value": "", "ignoreCase": false } ] ], "#name\\+value": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "name+value", "ignoreCase": false } ] ], "#nonexistent:has(*), #ap:has(*)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "nonexistent", "ignoreCase": false }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ] ] } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "ap", "ignoreCase": false }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ] ] } ] ], "#oooo": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "oooo", "ignoreCase": false } ] ], "#order-matters .order-matters": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "order-matters", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "order-matters", "ignoreCase": false } ] ], "#p *:nth-child(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "pseudo", "name": "nth-child", "data": "3" } ] ], "#p a:first-of-type": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "first-of-type", "data": null } ] ], "#p a:last-of-type": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "last-of-type", "data": null } ] ], "#p a:not(:first-of-type)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "first-of-type", "data": null } ] ] } ] ], "#p a:not(:last-of-type)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "last-of-type", "data": null } ] ] } ] ], "#p a:not(:nth-last-of-type(1))": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "nth-last-of-type", "data": "1" } ] ] } ] ], "#p a:not(:nth-of-type(1))": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "nth-of-type", "data": "1" } ] ] } ] ], "#p a:not([rel$=\"nofollow\"]) > em": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "rel", "action": "end", "value": "nofollow", "ignoreCase": false } ] ] }, { "type": "child" }, { "type": "tag", "name": "em" } ] ], "#p a:not([rel$=\"nofollow\"]) em": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "rel", "action": "end", "value": "nofollow", "ignoreCase": false } ] ] }, { "type": "descendant" }, { "type": "tag", "name": "em" } ] ], "#p a:not([rel$=\"nofollow\"])>em": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "rel", "action": "end", "value": "nofollow", "ignoreCase": false } ] ] }, { "type": "child" }, { "type": "tag", "name": "em" } ] ], "#p a:not([rel$=nofollow])": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "rel", "action": "end", "value": "nofollow", "ignoreCase": false } ] ] } ] ], "#p a:not([rel^=external])": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "rel", "action": "start", "value": "external", "ignoreCase": false } ] ] } ] ], "#p a:not([rel~=nofollow])": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "rel", "action": "element", "value": "nofollow", "ignoreCase": false } ] ] } ] ], "#p a:nth-child(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "nth-child", "data": "3" } ] ], "#p a:nth-last-of-type(1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "1" } ] ], "#p a:nth-of-type(1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "nth-of-type", "data": "1" } ] ], "#p a:nth-of-type(2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "p", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "nth-of-type", "data": "2" } ] ], "#pseudos :nth-child(+3n-2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-child", "data": "+3n-2" } ] ], "#pseudos :nth-child(-n+5)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-child", "data": "-n+5" } ] ], "#pseudos :nth-child(-n+6)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-child", "data": "-n+6" } ] ], "#pseudos :nth-child(3n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-child", "data": "3n" } ] ], "#pseudos :nth-child(3n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-child", "data": "3n+1" } ] ], "#pseudos :nth-child(3n+2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-child", "data": "3n+2" } ] ], "#pseudos :nth-child(odd)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-child", "data": "odd" } ] ], "#pseudos :nth-last-child(-n+5)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-child", "data": "-n+5" } ] ], "#pseudos :nth-last-child(-n+6)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-child", "data": "-n+6" } ] ], "#pseudos :nth-last-child(3n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n+1" } ] ], "#pseudos :nth-last-child(3n+2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n+2" } ] ], "#pseudos :nth-last-child(3n-2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n-2" } ] ], "#pseudos :nth-last-child(odd)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-child", "data": "odd" } ] ], "#pseudos a:first-of-type": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "first-of-type", "data": null } ] ], "#pseudos a:nth-last-of-type(3n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "3n+1" } ] ], "#pseudos a:nth-of-type(1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "nth-of-type", "data": "1" } ] ], "#pseudos a:nth-of-type(3n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "nth-of-type", "data": "3n" } ] ], "#pseudos a:nth-of-type(3n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "nth-of-type", "data": "3n+1" } ] ], "#pseudos a:nth-of-type(odd)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "nth-of-type", "data": "odd" } ] ], "#pseudos a:only-of-type": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "only-of-type", "data": null } ] ], "#pseudos div:first-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "#pseudos div:last-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "#pseudos div:last-of-type": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "last-of-type", "data": null } ] ], "#pseudos div:nth-child(2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "nth-child", "data": "2" } ] ], "#pseudos div:nth-child(even)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "nth-child", "data": "even" } ] ], "#pseudos div:nth-child(odd)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "nth-child", "data": "odd" } ] ], "#pseudos div:nth-last-child(6)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "nth-last-child", "data": "6" } ] ], "#pseudos div:nth-last-child(even)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "nth-last-child", "data": "even" } ] ], "#pseudos div:nth-last-child(odd)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "nth-last-child", "data": "odd" } ] ], "#pseudos div:nth-last-of-type(3n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "3n+1" } ] ], "#pseudos div:nth-last-of-type(5)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "5" } ] ], "#pseudos div:nth-of-type(3n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "nth-of-type", "data": "3n+1" } ] ], "#pseudos:target": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "pseudos", "ignoreCase": false }, { "type": "pseudo", "name": "target", "data": null } ] ], "#qunit-fixture": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false } ] ], "#qunit-fixture *[title]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "attribute", "name": "title", "action": "exists", "value": "", "ignoreCase": false } ] ], "#qunit-fixture :not(:has(:has(*)))": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ] ] } ] ] } ] ] } ] ], "#qunit-fixture > :nth-last-of-type(-n+2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "child" }, { "type": "pseudo", "name": "nth-last-of-type", "data": "-n+2" } ] ], "#qunit-fixture > :nth-of-type(-n+2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "child" }, { "type": "pseudo", "name": "nth-of-type", "data": "-n+2" } ] ], "#qunit-fixture > :only-of-type": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "child" }, { "type": "pseudo", "name": "only-of-type", "data": null } ] ], "#qunit-fixture > p:first-of-type": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "first-of-type", "data": null } ] ], "#qunit-fixture > p:last-of-type": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "last-of-type", "data": null } ] ], "#qunit-fixture [title]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "title", "action": "exists", "value": "", "ignoreCase": false } ] ], "#qunit-fixture a + a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "adjacent" }, { "type": "tag", "name": "a" } ] ], "#qunit-fixture a + a, code > a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "adjacent" }, { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "code" }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], "#qunit-fixture a +a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "adjacent" }, { "type": "tag", "name": "a" } ] ], "#qunit-fixture a+ a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "adjacent" }, { "type": "tag", "name": "a" } ] ], "#qunit-fixture a+a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "adjacent" }, { "type": "tag", "name": "a" } ] ], "#qunit-fixture a:last-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "#qunit-fixture a:only-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "only-child", "data": null } ] ], "#qunit-fixture a[ rel = 'bookmark' ]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "rel", "action": "equals", "value": "bookmark", "ignoreCase": false } ] ], "#qunit-fixture a[ title ]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "title", "action": "exists", "value": "", "ignoreCase": false } ] ], "#qunit-fixture a[TITLE]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "title", "action": "exists", "value": "", "ignoreCase": false } ] ], "#qunit-fixture a[href='http://www.google.com/']": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "equals", "value": "http://www.google.com/", "ignoreCase": false } ] ], "#qunit-fixture a[rel='bookmark']": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "rel", "action": "equals", "value": "bookmark", "ignoreCase": false } ] ], "#qunit-fixture a[rel=bookmark]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "rel", "action": "equals", "value": "bookmark", "ignoreCase": false } ] ], "#qunit-fixture a[title]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "title", "action": "exists", "value": "", "ignoreCase": false } ] ], "#qunit-fixture div:has(div:has(div:not([id])))": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "id", "action": "exists", "value": "", "ignoreCase": false } ] ] } ] ] } ] ] } ] ], "#qunit-fixture div[id]:not(:has(div, span)):not(:has(*))": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "exists", "value": "", "ignoreCase": false }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "div" } ], [ { "type": "tag", "name": "span" } ] ] } ] ] }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ] ] } ] ] } ] ], "#qunit-fixture form#form > *:nth-child(2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "form" }, { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "child" }, { "type": "universal" }, { "type": "pseudo", "name": "nth-child", "data": "2" } ] ], "#qunit-fixture form#form > :nth-child(2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "form" }, { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false }, { "type": "child" }, { "type": "pseudo", "name": "nth-child", "data": "2" } ] ], "#qunit-fixture form[id]:not([action$='formaction']):not(:button)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "form" }, { "type": "attribute", "name": "id", "action": "exists", "value": "", "ignoreCase": false }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "action", "action": "end", "value": "formaction", "ignoreCase": false } ] ] }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "button", "data": null } ] ] } ] ], "#qunit-fixture form[id]:not([action='form:action']):not(:button)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "form" }, { "type": "attribute", "name": "id", "action": "exists", "value": "", "ignoreCase": false }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "action", "action": "equals", "value": "form:action", "ignoreCase": false } ] ] }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "button", "data": null } ] ] } ] ], "#qunit-fixture form[id]:not([action='form:action']:button):not(:input)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "form" }, { "type": "attribute", "name": "id", "action": "exists", "value": "", "ignoreCase": false }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "action", "action": "equals", "value": "form:action", "ignoreCase": false }, { "type": "pseudo", "name": "button", "data": null } ] ] }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "input", "data": null } ] ] } ] ], "#qunit-fixture li[tabIndex=-1]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "li" }, { "type": "attribute", "name": "tabindex", "action": "equals", "value": "-1", "ignoreCase": false } ] ], "#qunit-fixture option[value=1]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "attribute", "name": "value", "action": "equals", "value": "1", "ignoreCase": false } ] ], "#qunit-fixture p": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "#qunit-fixture p\t": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "#qunit-fixture p\n": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "#qunit-fixture p\f": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "#qunit-fixture p\r": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "#qunit-fixture p ": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "#qunit-fixture p ~ div": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "sibling" }, { "type": "tag", "name": "div" } ] ], "#qunit-fixture p, #qunit-fixture p a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "descendant" }, { "type": "tag", "name": "a" } ] ], "#qunit-fixture p:FIRST-CHILD": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "#qunit-fixture p:first-child": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "#qunit-fixture p:has(:contains(mark)):has(code)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "pseudo", "name": "contains", "data": "mark" } ] ] }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "code" } ] ] } ] ], "#qunit-fixture p:has(:contains(mark)):has(code):contains(This link)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "pseudo", "name": "contains", "data": "mark" } ] ] }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "code" } ] ] }, { "type": "pseudo", "name": "contains", "data": "This link" } ] ], "#qunit-fixture p:not( a )": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "a" } ] ] } ] ], "#qunit-fixture p:not( p )": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "p" } ] ] } ] ], "#qunit-fixture p:not(#blargh)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "blargh", "ignoreCase": false } ] ] } ] ], "#qunit-fixture p:not(.foo)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "foo", "ignoreCase": false } ] ] } ] ], "#qunit-fixture p:not(:has(a), :nth-child(1))": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "a" } ] ] } ], [ { "type": "pseudo", "name": "nth-child", "data": "1" } ] ] } ] ], "#qunit-fixture p:not(:nth-child(1))": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "nth-child", "data": "1" } ] ] } ] ], "#qunit-fixture p:not(:nth-last-child(1))": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "nth-last-child", "data": "1" } ] ] } ] ], "#qunit-fixture p:not(a)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "a" } ] ] } ] ], "#qunit-fixture p:not(a, b)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "b" } ] ] } ] ], "#qunit-fixture p:not(a, b, div)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "b" } ], [ { "type": "tag", "name": "div" } ] ] } ] ], "#qunit-fixture p:not(div#blargh)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "blargh", "ignoreCase": false } ] ] } ] ], "#qunit-fixture p:not(div.foo)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "foo", "ignoreCase": false } ] ] } ] ], "#qunit-fixture p:not(p#blargh)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "p" }, { "type": "attribute", "name": "id", "action": "equals", "value": "blargh", "ignoreCase": false } ] ] } ] ], "#qunit-fixture p:not(p.foo)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "p" }, { "type": "attribute", "name": "class", "action": "element", "value": "foo", "ignoreCase": false } ] ] } ] ], "#qunit-fixture p:parent": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "parent", "data": null } ] ], "#seite1": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "seite1", "ignoreCase": false } ] ], "#select1 *:nth-last-child(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "pseudo", "name": "nth-last-child", "data": "3" } ] ], "#select1 :nth-last-child(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "nth-last-child", "data": "3" } ] ], "#select1 option:NTH-child(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3" } ] ], "#select1 option:NTH-last-child(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3" } ] ], "#select1 option:nth-child(+2n + 1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "+2n + 1" } ] ], "#select1 option:nth-child(-1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "-1" } ] ], "#select1 option:nth-child(-1n + 3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "-1n + 3" } ] ], "#select1 option:nth-child(-1n+3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "-1n+3" } ] ], "#select1 option:nth-child(-n+3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "-n+3" } ] ], "#select1 option:nth-child(1n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "1n" } ] ], "#select1 option:nth-child(1n+0)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "1n+0" } ] ], "#select1 option:nth-child(2n + 1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "2n + 1" } ] ], "#select1 option:nth-child(2n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "2n" } ] ], "#select1 option:nth-child(2n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "2n+1" } ] ], "#select1 option:nth-child(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3" } ] ], "#select1 option:nth-child(3n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3n" } ] ], "#select1 option:nth-child(3n+0)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3n+0" } ] ], "#select1 option:nth-child(3n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3n+1" } ] ], "#select1 option:nth-child(3n+2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3n+2" } ] ], "#select1 option:nth-child(3n+3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3n+3" } ] ], "#select1 option:nth-child(3n-1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3n-1" } ] ], "#select1 option:nth-child(3n-2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3n-2" } ] ], "#select1 option:nth-child(3n-3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "3n-3" } ] ], "#select1 option:nth-child(even)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "even" } ] ], "#select1 option:nth-child(n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "n" } ] ], "#select1 option:nth-child(odd)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-child", "data": "odd" } ] ], "#select1 option:nth-last-child(+2n + 1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "+2n + 1" } ] ], "#select1 option:nth-last-child(-1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "-1" } ] ], "#select1 option:nth-last-child(-1n + 3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "-1n + 3" } ] ], "#select1 option:nth-last-child(-1n+3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "-1n+3" } ] ], "#select1 option:nth-last-child(-n+3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "-n+3" } ] ], "#select1 option:nth-last-child(1n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "1n" } ] ], "#select1 option:nth-last-child(1n+0)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "1n+0" } ] ], "#select1 option:nth-last-child(2n + 1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "2n + 1" } ] ], "#select1 option:nth-last-child(2n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "2n" } ] ], "#select1 option:nth-last-child(2n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "2n+1" } ] ], "#select1 option:nth-last-child(3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3" } ] ], "#select1 option:nth-last-child(3n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n" } ] ], "#select1 option:nth-last-child(3n+0)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n+0" } ] ], "#select1 option:nth-last-child(3n+1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n+1" } ] ], "#select1 option:nth-last-child(3n+2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n+2" } ] ], "#select1 option:nth-last-child(3n+3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n+3" } ] ], "#select1 option:nth-last-child(3n-1)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n-1" } ] ], "#select1 option:nth-last-child(3n-2)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n-2" } ] ], "#select1 option:nth-last-child(3n-3)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "3n-3" } ] ], "#select1 option:nth-last-child(even)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "even" } ] ], "#select1 option:nth-last-child(n)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "n" } ] ], "#select1 option:nth-last-child(odd)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "nth-last-child", "data": "odd" } ] ], "#select1 option:selected": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "selected", "data": null } ] ], "#select1 option[value!='']": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "attribute", "name": "value", "action": "not", "value": "", "ignoreCase": false } ] ], "#select1 option[value='']": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "attribute", "name": "value", "action": "equals", "value": "", "ignoreCase": false } ] ], "#select2 option:selected": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select2", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "selected", "data": null } ] ], "#select2 option[selected='selected']": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select2", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "attribute", "name": "selected", "action": "equals", "value": "selected", "ignoreCase": false } ] ], "#select2 option[selected]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select2", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "attribute", "name": "selected", "action": "exists", "value": "", "ignoreCase": false } ] ], "#select3 option:selected": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select3", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "selected", "data": null } ] ], "#sep": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "sep", "ignoreCase": false } ] ], "#sibling-selector + .sibling-selector": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "sibling-selector", "ignoreCase": false }, { "type": "adjacent" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling-selector", "ignoreCase": false } ] ], "#sibling-selector + div.sibling-selector": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "sibling-selector", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling-selector", "ignoreCase": false } ] ], "#sibling-selector ~ .sibling-selector": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "sibling-selector", "ignoreCase": false }, { "type": "sibling" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling-selector", "ignoreCase": false } ] ], "#sibling-selector ~ div.sibling-selector": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "sibling-selector", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling-selector", "ignoreCase": false } ] ], "#siblingTest > em *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "siblingTest", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "em" }, { "type": "descendant" }, { "type": "universal" } ] ], "#siblingTest > em:contains('x') + em ~ span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "siblingTest", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "em" }, { "type": "pseudo", "name": "contains", "data": "x" }, { "type": "adjacent" }, { "type": "tag", "name": "em" }, { "type": "sibling" }, { "type": "tag", "name": "span" } ] ], "#siblingTest > em:first-child + em ~ span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "siblingTest", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "em" }, { "type": "pseudo", "name": "first-child", "data": null }, { "type": "adjacent" }, { "type": "tag", "name": "em" }, { "type": "sibling" }, { "type": "tag", "name": "span" } ] ], "#siblingTest em *": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "siblingTest", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "em" }, { "type": "descendant" }, { "type": "universal" } ] ], "#siblingTest em ~ em ~ em ~ span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "siblingTest", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "em" }, { "type": "sibling" }, { "type": "tag", "name": "em" }, { "type": "sibling" }, { "type": "tag", "name": "em" }, { "type": "sibling" }, { "type": "tag", "name": "span" } ] ], "#siblingfirst ~ em": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "siblingfirst", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "em" } ] ], "#spaced-tokens p em a": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "spaced-tokens", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" }, { "type": "descendant" }, { "type": "tag", "name": "em" }, { "type": "descendant" }, { "type": "tag", "name": "a" } ] ], "#spanny": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "spanny", "ignoreCase": false } ] ], "#tName1": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "tName1", "ignoreCase": false } ] ], "#tName1 span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "tName1", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "span" } ] ], "#tName1-span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "tName1-span", "ignoreCase": false } ] ], "#tName2": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "tName2", "ignoreCase": false } ] ], "#tName2 span": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "tName2", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "span" } ] ], "#tName2ID": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "tName2ID", "ignoreCase": false } ] ], "#test\\.foo\\[5\\]bar": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "test.foo[5]bar", "ignoreCase": false } ] ], "#tmp_input :button": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "tmp_input", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "button", "data": null } ] ], "#tmp_input :reset": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "tmp_input", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "reset", "data": null } ] ], "#tmp_input :submit": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "tmp_input", "ignoreCase": false }, { "type": "descendant" }, { "type": "pseudo", "name": "submit", "data": null } ] ], "#token-four": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "token-four", "ignoreCase": false } ] ], "#troubleForm": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm", "ignoreCase": false } ] ], "#troubleForm *:checked": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "pseudo", "name": "checked", "data": null } ] ], "#troubleForm *[type=radio]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "attribute", "name": "type", "action": "equals", "value": "radio", "ignoreCase": false } ] ], "#troubleForm *[type]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "attribute", "name": "type", "action": "exists", "value": "", "ignoreCase": false } ] ], "#troubleForm > p > *:disabled": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "p" }, { "type": "child" }, { "type": "universal" }, { "type": "pseudo", "name": "disabled", "data": null } ] ], "#troubleForm [type=radio]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "type", "action": "equals", "value": "radio", "ignoreCase": false } ] ], "#troubleForm [type]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "type", "action": "exists", "value": "", "ignoreCase": false } ] ], "#troubleForm2 input[name=\"brackets[5][]\"]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm2", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "brackets[5][]", "ignoreCase": false } ] ], "#troubleForm2 input[name=\"brackets[5][]\"]:checked": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm2", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "brackets[5][]", "ignoreCase": false }, { "type": "pseudo", "name": "checked", "data": null } ] ], "#troubleForm2 input[name=\"brackets[5][]\"][value=\"2\"]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "troubleForm2", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "brackets[5][]", "ignoreCase": false }, { "type": "attribute", "name": "value", "action": "equals", "value": "2", "ignoreCase": false } ] ], "#types_all": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "types_all", "ignoreCase": false } ] ], "#uncle": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "uncle", "ignoreCase": false } ] ], "#台北Táiběi": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "台北Táiběi", "ignoreCase": false } ] ], "#台北Táiběi, #台北": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "台北Táiběi", "ignoreCase": false } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "台北", "ignoreCase": false } ] ], "*": [ [ { "type": "universal" } ] ], "* :not(*) foo": [ [ { "type": "universal" }, { "type": "descendant" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "universal" } ] ] }, { "type": "descendant" }, { "type": "tag", "name": "foo" } ] ], "* < *": [ [ { "type": "universal" }, { "type": "parent" }, { "type": "universal" } ] ], "*, foo": [ [ { "type": "universal" } ], [ { "type": "tag", "name": "foo" } ] ], "*,:contains(!)": [ [ { "type": "universal" } ], [ { "type": "pseudo", "name": "contains", "data": "!" } ] ], "*:contains(humans)": [ [ { "type": "universal" }, { "type": "pseudo", "name": "contains", "data": "humans" } ] ], "*[id]": [ [ { "type": "universal" }, { "type": "attribute", "name": "id", "action": "exists", "value": "", "ignoreCase": false } ] ], "*[name=iframe]": [ [ { "type": "universal" }, { "type": "attribute", "name": "name", "action": "equals", "value": "iframe", "ignoreCase": false } ] ], "*[type=checkbox]": [ [ { "type": "universal" }, { "type": "attribute", "name": "type", "action": "equals", "value": "checkbox", "ignoreCase": false } ] ], ".GROUPS": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "GROUPS", "ignoreCase": false } ] ], ".a": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false } ] ], ".a #booshTest #spanny": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "booshTest", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "spanny", "ignoreCase": false } ] ], ".a #spanny": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "spanny", "ignoreCase": false } ] ], ".a .d + .sib": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "d", "ignoreCase": false }, { "type": "adjacent" }, { "type": "attribute", "name": "class", "action": "element", "value": "sib", "ignoreCase": false } ] ], ".a .d ~ .sib[test=\"f g\"]": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "d", "ignoreCase": false }, { "type": "sibling" }, { "type": "attribute", "name": "class", "action": "element", "value": "sib", "ignoreCase": false }, { "type": "attribute", "name": "test", "action": "equals", "value": "f g", "ignoreCase": false } ] ], ".a > #booshTest": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "booshTest", "ignoreCase": false } ] ], ".a span": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "span" } ] ], ".a.b #booshTest": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "b", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "booshTest", "ignoreCase": false } ] ], ".a>#booshTest": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "booshTest", "ignoreCase": false } ] ], ".blog": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "blog", "ignoreCase": false } ] ], ".blog.link": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "blog", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "link", "ignoreCase": false } ] ], ".brothers": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false } ] ], ".class-with-dashes": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "class-with-dashes", "ignoreCase": false } ] ], ".component": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "component", "ignoreCase": false } ] ], ".container div:not(.excluded) div": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "container", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "excluded", "ignoreCase": false } ] ] }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], ".d #oooo #emem": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "d", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "oooo", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "emem", "ignoreCase": false } ] ], ".d ~ .sib": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "d", "ignoreCase": false }, { "type": "sibling" }, { "type": "attribute", "name": "class", "action": "element", "value": "sib", "ignoreCase": false } ] ], ".d.i #emem": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "d", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "i", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "emem", "ignoreCase": false } ] ], ".direct-descend > .direct-descend .lvl2": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "direct-descend", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "direct-descend", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "lvl2", "ignoreCase": false } ] ], ".direct-descend > .direct-descend > .direct-descend ~ .lvl2": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "direct-descend", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "direct-descend", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "direct-descend", "ignoreCase": false }, { "type": "sibling" }, { "type": "attribute", "name": "class", "action": "element", "value": "lvl2", "ignoreCase": false } ] ], ".direct-descend > .direct-descend div": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "direct-descend", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "direct-descend", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], ".e": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "e", "ignoreCase": false } ] ], ".e.hasOwnProperty.toString": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "e", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "hasOwnProperty", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "toString", "ignoreCase": false } ] ], ".excluded": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "excluded", "ignoreCase": false } ] ], ".first": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "first", "ignoreCase": false } ] ], ".foo": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "foo", "ignoreCase": false } ] ], ".foo\\:bar": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "foo:bar", "ignoreCase": false } ] ], ".fototab > .thumbnails > a": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "fototab", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "thumbnails", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], ".internal#link_2": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false }, { "type": "attribute", "name": "id", "action": "equals", "value": "link_2", "ignoreCase": false } ] ], ".link": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "link", "ignoreCase": false } ] ], ".nothiddendiv div:first-child": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "nothiddendiv", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], ".null": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "null", "ignoreCase": false } ] ], ".null div": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "null", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], ".odd:not(div)": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "odd", "ignoreCase": false }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "div" } ] ] } ] ], ".parent .middle + .sibling": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "middle", "ignoreCase": false }, { "type": "adjacent" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling", "ignoreCase": false } ] ], ".parent .middle + h2": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "middle", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "h2" } ] ], ".parent .middle + h3": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "middle", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "h3" } ] ], ".parent .middle + h4": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "middle", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "h4" } ] ], ".parent .middle ~ .sibling": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "middle", "ignoreCase": false }, { "type": "sibling" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling", "ignoreCase": false } ] ], ".parent .middle ~ h2": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "middle", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "h2" } ] ], ".parent .middle ~ h3": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "middle", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "h3" } ] ], ".parent .middle ~ h4": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "middle", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "h4" } ] ], ".parent .middle ~ h4.younger": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "middle", "ignoreCase": false }, { "type": "sibling" }, { "type": "tag", "name": "h4" }, { "type": "attribute", "name": "class", "action": "element", "value": "younger", "ignoreCase": false } ] ], ".parent .oldest + .sibling": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "oldest", "ignoreCase": false }, { "type": "adjacent" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling", "ignoreCase": false } ] ], ".parent .oldest ~ .sibling": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "oldest", "ignoreCase": false }, { "type": "sibling" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling", "ignoreCase": false } ] ], ".parent .youngest + .sibling": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "youngest", "ignoreCase": false }, { "type": "adjacent" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling", "ignoreCase": false } ] ], ".parent .youngest ~ .sibling": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "parent", "ignoreCase": false }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "youngest", "ignoreCase": false }, { "type": "sibling" }, { "type": "attribute", "name": "class", "action": "element", "value": "sibling", "ignoreCase": false } ] ], ".second": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "second", "ignoreCase": false } ] ], ".select1": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "select1", "ignoreCase": false } ] ], ".test\\.foo\\[5\\]bar": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "test.foo[5]bar", "ignoreCase": false } ] ], ".台北": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "台北", "ignoreCase": false } ] ], ".台北Táiběi": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "台北Táiběi", "ignoreCase": false } ] ], ".台北Táiběi, .台北": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "台北Táiběi", "ignoreCase": false } ], [ { "type": "attribute", "name": "class", "action": "element", "value": "台北", "ignoreCase": false } ] ], ".台北Táiběi.台北": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "台北Táiběi", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "台北", "ignoreCase": false } ] ], ":Header": [ [ { "type": "pseudo", "name": "header", "data": null } ] ], ":button": [ [ { "type": "pseudo", "name": "button", "data": null } ] ], ":contains(Nothing),#option1b,:selected": [ [ { "type": "pseudo", "name": "contains", "data": "Nothing" } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "option1b", "ignoreCase": false } ], [ { "type": "pseudo", "name": "selected", "data": null } ] ], ":contains(foo)": [ [ { "type": "pseudo", "name": "contains", "data": "foo" } ] ], ":contains(humans)": [ [ { "type": "pseudo", "name": "contains", "data": "humans" } ] ], ":contains(mark)": [ [ { "type": "pseudo", "name": "contains", "data": "mark" } ] ], ":empty": [ [ { "type": "pseudo", "name": "empty", "data": null } ] ], ":first-child": [ [ { "type": "pseudo", "name": "first-child", "data": null } ] ], ":first-child(n)": [ [ { "type": "pseudo", "name": "first-child", "data": "n" } ] ], ":first-last-child": [ [ { "type": "pseudo", "name": "first-last-child", "data": null } ] ], ":first-of-type": [ [ { "type": "pseudo", "name": "first-of-type", "data": null } ] ], ":has(*)": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ] ] } ] ], ":has(*,:contains(!)),:contains(!)": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ], [ { "type": "pseudo", "name": "contains", "data": "!" } ] ] } ], [ { "type": "pseudo", "name": "contains", "data": "!" } ] ], ":has(:has(*))": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ] ] } ] ] } ] ], ":has(:nth-child(-1n-1))": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "pseudo", "name": "nth-child", "data": "-1n-1" } ] ] } ] ], ":has(a),:nth-child(1)": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "a" } ] ] } ], [ { "type": "pseudo", "name": "nth-child", "data": "1" } ] ], ":has(div,span)": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "div" } ], [ { "type": "tag", "name": "span" } ] ] } ] ], ":has(option)": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "option" } ] ] } ] ], ":header": [ [ { "type": "pseudo", "name": "header", "data": null } ] ], ":humanoid": [ [ { "type": "pseudo", "name": "humanoid", "data": null } ] ], ":image,:input,:submit": [ [ { "type": "pseudo", "name": "image", "data": null } ], [ { "type": "pseudo", "name": "input", "data": null } ], [ { "type": "pseudo", "name": "submit", "data": null } ] ], ":input": [ [ { "type": "pseudo", "name": "input", "data": null } ] ], ":input:not(:image,:input,:submit)": [ [ { "type": "pseudo", "name": "input", "data": null }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "image", "data": null } ], [ { "type": "pseudo", "name": "input", "data": null } ], [ { "type": "pseudo", "name": "submit", "data": null } ] ] } ] ], ":input[data-pos=':first']": [ [ { "type": "pseudo", "name": "input", "data": null }, { "type": "attribute", "name": "data-pos", "action": "equals", "value": ":first", "ignoreCase": false } ] ], ":last-child": [ [ { "type": "pseudo", "name": "last-child", "data": null } ] ], ":last-child(n)": [ [ { "type": "pseudo", "name": "last-child", "data": "n" } ] ], ":last-last-child": [ [ { "type": "pseudo", "name": "last-last-child", "data": null } ] ], ":last-of-type": [ [ { "type": "pseudo", "name": "last-of-type", "data": null } ] ], ":not(*)": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "universal" } ] ] } ] ], ":not(:not(*))": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "universal" } ] ] } ] ] } ] ], ":not(:not(:not(*)))": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "universal" } ] ] } ] ] } ] ] } ] ], ":not(:nth-child(-1n-1))": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "nth-child", "data": "-1n-1" } ] ] } ] ], ":not(:selected)": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "selected", "data": null } ] ] } ] ], ":not(code)": [ [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "code" } ] ] } ] ], ":nth-child": [ [ { "type": "pseudo", "name": "nth-child", "data": null } ] ], ":nth-child(- 1n)": [ [ { "type": "pseudo", "name": "nth-child", "data": "- 1n" } ] ], ":nth-child(-)": [ [ { "type": "pseudo", "name": "nth-child", "data": "-" } ] ], ":nth-child(-1 n)": [ [ { "type": "pseudo", "name": "nth-child", "data": "-1 n" } ] ], ":nth-child(-1n-1)": [ [ { "type": "pseudo", "name": "nth-child", "data": "-1n-1" } ] ], ":nth-child(1)": [ [ { "type": "pseudo", "name": "nth-child", "data": "1" } ] ], ":nth-child(2+0)": [ [ { "type": "pseudo", "name": "nth-child", "data": "2+0" } ] ], ":nth-child(2n+-0)": [ [ { "type": "pseudo", "name": "nth-child", "data": "2n+-0" } ] ], ":nth-child(asdf)": [ [ { "type": "pseudo", "name": "nth-child", "data": "asdf" } ] ], ":nth-last-child(1)": [ [ { "type": "pseudo", "name": "nth-last-child", "data": "1" } ] ], ":nth-last-last-child(1)": [ [ { "type": "pseudo", "name": "nth-last-last-child", "data": "1" } ] ], ":nth-last-of-type(-1)": [ [ { "type": "pseudo", "name": "nth-last-of-type", "data": "-1" } ] ], ":nth-last-of-type(1)": [ [ { "type": "pseudo", "name": "nth-last-of-type", "data": "1" } ] ], ":nth-of-type(-1)": [ [ { "type": "pseudo", "name": "nth-of-type", "data": "-1" } ] ], ":nth-of-type(1)": [ [ { "type": "pseudo", "name": "nth-of-type", "data": "1" } ] ], ":only-child(n)": [ [ { "type": "pseudo", "name": "only-child", "data": "n" } ] ], ":only-last-child": [ [ { "type": "pseudo", "name": "only-last-child", "data": null } ] ], ":parent": [ [ { "type": "pseudo", "name": "parent", "data": null } ] ], ":reset": [ [ { "type": "pseudo", "name": "reset", "data": null } ] ], ":root": [ [ { "type": "pseudo", "name": "root", "data": null } ] ], ":selected": [ [ { "type": "pseudo", "name": "selected", "data": null } ] ], ":submit": [ [ { "type": "pseudo", "name": "submit", "data": null } ] ], ":visble": [ [ { "type": "pseudo", "name": "visble", "data": null } ] ], ">.a>#booshTest": [ [ { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "a", "ignoreCase": false }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "booshTest", "ignoreCase": false } ] ], "[action$='formaction']": [ [ { "type": "attribute", "name": "action", "action": "end", "value": "formaction", "ignoreCase": false } ] ], "[action='form:action']": [ [ { "type": "attribute", "name": "action", "action": "equals", "value": "form:action", "ignoreCase": false } ] ], "[action='form:action']:button": [ [ { "type": "attribute", "name": "action", "action": "equals", "value": "form:action", "ignoreCase": false }, { "type": "pseudo", "name": "button", "data": null } ] ], "[attr=boosh]": [ [ { "type": "attribute", "name": "attr", "action": "equals", "value": "boosh", "ignoreCase": false } ] ], "[attr=foo]": [ [ { "type": "attribute", "name": "attr", "action": "equals", "value": "foo", "ignoreCase": false } ] ], "[attr]": [ [ { "type": "attribute", "name": "attr", "action": "exists", "value": "", "ignoreCase": false } ] ], "[class*=component]": [ [ { "type": "attribute", "name": "class", "action": "any", "value": "component", "ignoreCase": false } ] ], "[class~=brothers]": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false } ] ], "[class~=internal]": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false } ] ], "[constructor='foo']": [ [ { "type": "attribute", "name": "constructor", "action": "equals", "value": "foo", "ignoreCase": false } ] ], "[constructor]": [ [ { "type": "attribute", "name": "constructor", "action": "exists", "value": "", "ignoreCase": false } ] ], "[foo]": [ [ { "type": "attribute", "name": "foo", "action": "exists", "value": "", "ignoreCase": false } ] ], "[foo^=\"bar\"]": [ [ { "type": "attribute", "name": "foo", "action": "start", "value": "bar", "ignoreCase": false } ] ], "[href=\"#\"]": [ [ { "type": "attribute", "name": "href", "action": "equals", "value": "#", "ignoreCase": false } ] ], "[href]": [ [ { "type": "attribute", "name": "href", "action": "exists", "value": "", "ignoreCase": false } ] ], "[id*=option1]": [ [ { "type": "attribute", "name": "id", "action": "any", "value": "option1", "ignoreCase": false } ] ], "[id*=option1][type!=checkbox]": [ [ { "type": "attribute", "name": "id", "action": "any", "value": "option1", "ignoreCase": false }, { "type": "attribute", "name": "type", "action": "not", "value": "checkbox", "ignoreCase": false } ] ], "[id='select1'] *:not(:last-child), [id='select2'] *:not(:last-child)": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "select1", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "last-child", "data": null } ] ] } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "select2", "ignoreCase": false }, { "type": "descendant" }, { "type": "universal" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "last-child", "data": null } ] ] } ] ], "[id=option1a]": [ [ { "type": "attribute", "name": "id", "action": "equals", "value": "option1a", "ignoreCase": false } ] ], "[id]": [ [ { "type": "attribute", "name": "id", "action": "exists", "value": "", "ignoreCase": false } ] ], "[multiple]": [ [ { "type": "attribute", "name": "multiple", "action": "exists", "value": "", "ignoreCase": false } ] ], "[name='id']": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "id", "ignoreCase": false } ] ], "[name='select1']": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "select1", "ignoreCase": false } ] ], "[name=div]": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "div", "ignoreCase": false } ] ], "[name=example]": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "example", "ignoreCase": false } ] ], "[name=prop2]": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "prop2", "ignoreCase": false } ] ], "[name=select1]": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "select1", "ignoreCase": false } ] ], "[name=tName1]": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "tName1", "ignoreCase": false } ] ], "[name=tName2]": [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "tName2", "ignoreCase": false } ] ], "[rel$=\"nofollow\"]": [ [ { "type": "attribute", "name": "rel", "action": "end", "value": "nofollow", "ignoreCase": false } ] ], "[rel$=nofollow]": [ [ { "type": "attribute", "name": "rel", "action": "end", "value": "nofollow", "ignoreCase": false } ] ], "[rel^=external]": [ [ { "type": "attribute", "name": "rel", "action": "start", "value": "external", "ignoreCase": false } ] ], "[rel~=nofollow]": [ [ { "type": "attribute", "name": "rel", "action": "element", "value": "nofollow", "ignoreCase": false } ] ], "[test=]": [ [ { "type": "attribute", "name": "test", "action": "equals", "value": "", "ignoreCase": false } ] ], "[test^='']": [ [ { "type": "attribute", "name": "test", "action": "start", "value": "", "ignoreCase": false } ] ], "[title]": [ [ { "type": "attribute", "name": "title", "action": "exists", "value": "", "ignoreCase": false } ] ], "[type=checkbox]": [ [ { "type": "attribute", "name": "type", "action": "equals", "value": "checkbox", "ignoreCase": false } ] ], "[type=radio]": [ [ { "type": "attribute", "name": "type", "action": "equals", "value": "radio", "ignoreCase": false } ] ], "[watch='bar']": [ [ { "type": "attribute", "name": "watch", "action": "equals", "value": "bar", "ignoreCase": false } ] ], "[watch]": [ [ { "type": "attribute", "name": "watch", "action": "exists", "value": "", "ignoreCase": false } ] ], "[xml\\:test]": [ [ { "type": "attribute", "name": "xml:test", "action": "exists", "value": "", "ignoreCase": false } ] ], "a": [ [ { "type": "tag", "name": "a" } ] ], "a#link_2.internal": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "id", "action": "equals", "value": "link_2", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false } ] ], "a,b": [ [ { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "b" } ] ], "a,b,div": [ [ { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "b" } ], [ { "type": "tag", "name": "div" } ] ], "a,p": [ [ { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "p" } ] ], "a,p,b": [ [ { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "p" } ], [ { "type": "tag", "name": "b" } ] ], "a.GROUPS + code + a": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "GROUPS", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "code" }, { "type": "adjacent" }, { "type": "tag", "name": "a" } ] ], "a.blog": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "blog", "ignoreCase": false } ] ], "a.blog:not(.link)": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "blog", "ignoreCase": false }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "link", "ignoreCase": false } ] ] } ] ], "a.highlight.internal": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "highlight", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false } ] ], "a.highlight.internal.nonexistent": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "highlight", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "nonexistent", "ignoreCase": false } ] ], "a.internal": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false } ] ], "a.internal#link_2": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false }, { "type": "attribute", "name": "id", "action": "equals", "value": "link_2", "ignoreCase": false } ] ], "a.internal.highlight": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "highlight", "ignoreCase": false } ] ], "a.odd": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "odd", "ignoreCase": false } ] ], "a:contains(\"(Link)\")": [ [ { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "contains", "data": "(Link)" } ] ], "a:contains('')": [ [ { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "contains", "data": "" } ] ], "a:contains('Google Groups (Link)')": [ [ { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "contains", "data": "Google Groups (Link)" } ] ], "a:contains((Link))": [ [ { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "contains", "data": "(Link)" } ] ], "a:contains(Google Groups (Link))": [ [ { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "contains", "data": "Google Groups (Link)" } ] ], "a:contains(Google Groups)": [ [ { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "contains", "data": "Google Groups" } ] ], "a:contains(Google)": [ [ { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "contains", "data": "Google" } ] ], "a:not([href=\"#\"])": [ [ { "type": "tag", "name": "a" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "href", "action": "equals", "value": "#", "ignoreCase": false } ] ] } ] ], "a[class*=blog]:not(:has(*, :contains(!)), :contains(!)), br:contains(]), p:contains(]), :not(:empty):not(:parent)": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "any", "value": "blog", "ignoreCase": false }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ], [ { "type": "pseudo", "name": "contains", "data": "!" } ] ] } ], [ { "type": "pseudo", "name": "contains", "data": "!" } ] ] } ], [ { "type": "tag", "name": "br" }, { "type": "pseudo", "name": "contains", "data": "]" } ], [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "contains", "data": "]" } ], [ { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "empty", "data": null } ] ] }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "parent", "data": null } ] ] } ] ], "a[class~=\"internal\"]": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false } ] ], "a[class~=external]:not([href=\"#\"])": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "external", "ignoreCase": false }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "href", "action": "equals", "value": "#", "ignoreCase": false } ] ] } ] ], "a[class~=external][href=\"#\"]": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "external", "ignoreCase": false }, { "type": "attribute", "name": "href", "action": "equals", "value": "#", "ignoreCase": false } ] ], "a[class~=internal]": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "internal", "ignoreCase": false } ] ], "a[href $= 'org/']": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "end", "value": "org/", "ignoreCase": false } ] ], "a[href *= 'google']": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "any", "value": "google", "ignoreCase": false } ] ], "a[href ^= 'http://www']": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "start", "value": "http://www", "ignoreCase": false } ] ], "a[href*=#]": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "any", "value": "#", "ignoreCase": false } ] ], "a[href=\"#\"]": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "equals", "value": "#", "ignoreCase": false } ] ], "a[href]": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "exists", "value": "", "ignoreCase": false } ] ], "a[rel^=\"external\"]": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "rel", "action": "start", "value": "external", "ignoreCase": false } ] ], "a[rel^='external']": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "rel", "action": "start", "value": "external", "ignoreCase": false } ] ], "a[rel^=external]": [ [ { "type": "tag", "name": "a" }, { "type": "attribute", "name": "rel", "action": "start", "value": "external", "ignoreCase": false } ] ], "body": [ [ { "type": "tag", "name": "body" } ] ], "body div div div": [ [ { "type": "tag", "name": "body" }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "body#body": [ [ { "type": "tag", "name": "body" }, { "type": "attribute", "name": "id", "action": "equals", "value": "body", "ignoreCase": false } ] ], "body>div div div": [ [ { "type": "tag", "name": "body" }, { "type": "child" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "cite[title=\"hello world!\"]": [ [ { "type": "tag", "name": "cite" }, { "type": "attribute", "name": "title", "action": "equals", "value": "hello world!", "ignoreCase": false } ] ], "code": [ [ { "type": "tag", "name": "code" } ] ], "code > *": [ [ { "type": "tag", "name": "code" }, { "type": "child" }, { "type": "universal" } ] ], "component": [ [ { "type": "tag", "name": "component" } ] ], "component#seite1": [ [ { "type": "tag", "name": "component" }, { "type": "attribute", "name": "id", "action": "equals", "value": "seite1", "ignoreCase": false } ] ], "div": [ [ { "type": "tag", "name": "div" } ] ], "div #foo\\:bar": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "foo:bar", "ignoreCase": false } ] ], "div #test\\.foo\\[5\\]bar": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "test.foo[5]bar", "ignoreCase": false } ] ], "div #台北": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "台北", "ignoreCase": false } ] ], "div .foo\\:bar": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "foo:bar", "ignoreCase": false } ] ], "div .test\\.foo\\[5\\]bar": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "test.foo[5]bar", "ignoreCase": false } ] ], "div .tokens[title=\"one two three #%\"]": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "tokens", "ignoreCase": false }, { "type": "attribute", "name": "title", "action": "equals", "value": "one two three #%", "ignoreCase": false } ] ], "div .tokens[title=\"one two three #%\"] a[href$=foo] div": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "tokens", "ignoreCase": false }, { "type": "attribute", "name": "title", "action": "equals", "value": "one two three #%", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "end", "value": "foo", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "div .tokens[title=\"one two\"]": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "tokens", "ignoreCase": false }, { "type": "attribute", "name": "title", "action": "equals", "value": "one two", "ignoreCase": false } ] ], "div .tokens[title=\"one\"]": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "tokens", "ignoreCase": false }, { "type": "attribute", "name": "title", "action": "equals", "value": "one", "ignoreCase": false } ] ], "div .tokens[title='one two three #%'] a": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "tokens", "ignoreCase": false }, { "type": "attribute", "name": "title", "action": "equals", "value": "one two three #%", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "a" } ] ], "div .台北Táiběi": [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "台北Táiběi", "ignoreCase": false } ] ], "div > #nonexistent": [ [ { "type": "tag", "name": "div" }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "nonexistent", "ignoreCase": false } ] ], "div > div #tName1": [ [ { "type": "tag", "name": "div" }, { "type": "child" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "attribute", "name": "id", "action": "equals", "value": "tName1", "ignoreCase": false } ] ], "div > span": [ [ { "type": "tag", "name": "div" }, { "type": "child" }, { "type": "tag", "name": "span" } ] ], "div ~ #level2_3": [ [ { "type": "tag", "name": "div" }, { "type": "sibling" }, { "type": "attribute", "name": "id", "action": "equals", "value": "level2_3", "ignoreCase": false } ] ], "div ~ #level3_2": [ [ { "type": "tag", "name": "div" }, { "type": "sibling" }, { "type": "attribute", "name": "id", "action": "equals", "value": "level3_2", "ignoreCase": false } ] ], "div#attr-child-boosh[attr=boosh]": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "attr-child-boosh", "ignoreCase": false }, { "type": "attribute", "name": "attr", "action": "equals", "value": "boosh", "ignoreCase": false } ] ], "div#attr-test3.found.you[title=\"whatup duders\"]": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "attr-test3", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "found", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "you", "ignoreCase": false }, { "type": "attribute", "name": "title", "action": "equals", "value": "whatup duders", "ignoreCase": false } ] ], "div#blargh": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "blargh", "ignoreCase": false } ] ], "div#fixtures > div a": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "fixtures", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "a" } ] ], "div#fixtures div ~ a div": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "fixtures", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "div" }, { "type": "sibling" }, { "type": "tag", "name": "a" }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "div#fixtures p": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "fixtures", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "div#fixtures>div a": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "fixtures", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "a" } ] ], "div#form": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "form", "ignoreCase": false } ] ], "div#grandfather > div": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "id", "action": "equals", "value": "grandfather", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "div" } ] ], "div,span": [ [ { "type": "tag", "name": "div" } ], [ { "type": "tag", "name": "span" } ] ], "div.blah > p > a": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "blah", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "p" }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], "div.brothers": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false } ] ], "div.brothers + div": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "div" } ] ], "div.brothers + div.brothers": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false } ] ], "div.brothers:not(.brothers)": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false } ] ] } ] ], "div.foo": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "foo", "ignoreCase": false } ] ], "div.foo > span > a": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "foo", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "span" }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], "div:has(div:not([id]))": [ [ { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "id", "action": "exists", "value": "", "ignoreCase": false } ] ] } ] ] } ] ], "div:not(.brothers)": [ [ { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false } ] ] } ] ], "div:not([class~=brothers])": [ [ { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false } ] ] } ] ], "div:not([id])": [ [ { "type": "tag", "name": "div" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "attribute", "name": "id", "action": "exists", "value": "", "ignoreCase": false } ] ] } ] ], "div[class$=men]": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "end", "value": "men", "ignoreCase": false } ] ], "div[class*=\"ers m\"]": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "any", "value": "ers m", "ignoreCase": false } ] ], "div[class^=bro]": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "start", "value": "bro", "ignoreCase": false } ] ], "div[class~=brothers]": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false } ] ], "div[class~=brothers].brothers": [ [ { "type": "tag", "name": "div" }, { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "brothers", "ignoreCase": false } ] ], "dl\tol": [ [ { "type": "tag", "name": "dl" }, { "type": "descendant" }, { "type": "tag", "name": "ol" } ] ], "dl ol": [ [ { "type": "tag", "name": "dl" }, { "type": "descendant" }, { "type": "tag", "name": "ol" } ] ], "elem:not(:has(*))": [ [ { "type": "tag", "name": "elem" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "has", "data": [ [ { "type": "universal" } ] ] } ] ] } ] ], "em[nopass~=\"copyright\"]": [ [ { "type": "tag", "name": "em" }, { "type": "attribute", "name": "nopass", "action": "element", "value": "copyright", "ignoreCase": false } ] ], "em[rel~=\"copyright\"]": [ [ { "type": "tag", "name": "em" }, { "type": "attribute", "name": "rel", "action": "element", "value": "copyright", "ignoreCase": false } ] ], "foo_bar": [ [ { "type": "tag", "name": "foo_bar" } ] ], "form": [ [ { "type": "tag", "name": "form" } ] ], "form > #foo\\:bar": [ [ { "type": "tag", "name": "form" }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "foo:bar", "ignoreCase": false } ] ], "form > #test\\.foo\\[5\\]bar": [ [ { "type": "tag", "name": "form" }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "test.foo[5]bar", "ignoreCase": false } ] ], "form > #台北": [ [ { "type": "tag", "name": "form" }, { "type": "child" }, { "type": "attribute", "name": "id", "action": "equals", "value": "台北", "ignoreCase": false } ] ], "form > .foo\\:bar": [ [ { "type": "tag", "name": "form" }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "foo:bar", "ignoreCase": false } ] ], "form > .test\\.foo\\[5\\]bar": [ [ { "type": "tag", "name": "form" }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "test.foo[5]bar", "ignoreCase": false } ] ], "form > .台北Táiběi": [ [ { "type": "tag", "name": "form" }, { "type": "child" }, { "type": "attribute", "name": "class", "action": "element", "value": "台北Táiběi", "ignoreCase": false } ] ], "form label[for]": [ [ { "type": "tag", "name": "form" }, { "type": "descendant" }, { "type": "tag", "name": "label" }, { "type": "attribute", "name": "for", "action": "exists", "value": "", "ignoreCase": false } ] ], "form:nth-last-child( 5 )": [ [ { "type": "tag", "name": "form" }, { "type": "pseudo", "name": "nth-last-child", "data": " 5 " } ] ], "form:nth-last-child(5)": [ [ { "type": "tag", "name": "form" }, { "type": "pseudo", "name": "nth-last-child", "data": "5" } ] ], "form[title*=\"commas,\"], input[value=\"#commaOne,#commaTwo\"]": [ [ { "type": "tag", "name": "form" }, { "type": "attribute", "name": "title", "action": "any", "value": "commas,", "ignoreCase": false } ], [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "value", "action": "equals", "value": "#commaOne,#commaTwo", "ignoreCase": false } ] ], "h1": [ [ { "type": "tag", "name": "h1" } ] ], "h1 ~ ul": [ [ { "type": "tag", "name": "h1" }, { "type": "sibling" }, { "type": "tag", "name": "ul" } ] ], "h1[CLASS]": [ [ { "type": "tag", "name": "h1" }, { "type": "attribute", "name": "class", "action": "exists", "value": "", "ignoreCase": false } ] ], "h1[class]": [ [ { "type": "tag", "name": "h1" }, { "type": "attribute", "name": "class", "action": "exists", "value": "", "ignoreCase": false } ] ], "h2\t,\r#qunit-fixture p\n": [ [ { "type": "tag", "name": "h2" } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "h2 , #qunit-fixture p": [ [ { "type": "tag", "name": "h2" } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "h2, #qunit-fixture p": [ [ { "type": "tag", "name": "h2" } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "h2, h1": [ [ { "type": "tag", "name": "h2" } ], [ { "type": "tag", "name": "h1" } ] ], "h2,#qunit-fixture p": [ [ { "type": "tag", "name": "h2" } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "h2,#qunit-fixture p ": [ [ { "type": "tag", "name": "h2" } ], [ { "type": "attribute", "name": "id", "action": "equals", "value": "qunit-fixture", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "html": [ [ { "type": "tag", "name": "html" } ] ], "input": [ [ { "type": "tag", "name": "input" } ] ], "input[data-attr='\\01D306A']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "data-attr", "action": "equals", "value": "𝌆A", "ignoreCase": false } ] ], "input[data-comma=\"0,1\"]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "data-comma", "action": "equals", "value": "0,1", "ignoreCase": false } ] ], "input[data-comma='0,1']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "data-comma", "action": "equals", "value": "0,1", "ignoreCase": false } ] ], "input[data-pos=':first']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "data-pos", "action": "equals", "value": ":first", "ignoreCase": false } ] ], "input[data-pos=\\:first]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "data-pos", "action": "equals", "value": ":first", "ignoreCase": false } ] ], "input[id='idTest']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "id", "action": "equals", "value": "idTest", "ignoreCase": false } ] ], "input[id=types_all]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "id", "action": "equals", "value": "types_all", "ignoreCase": false } ] ], "input[name$='[bar]']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "end", "value": "[bar]", "ignoreCase": false } ] ], "input[name$='bar]']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "end", "value": "bar]", "ignoreCase": false } ] ], "input[name$='foo[bar]']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "end", "value": "foo[bar]", "ignoreCase": false } ] ], "input[name*='[bar]']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "any", "value": "[bar]", "ignoreCase": false } ] ], "input[name*='foo[bar]']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "any", "value": "foo[bar]", "ignoreCase": false } ] ], "input[name=\"action\"]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "action", "ignoreCase": false } ] ], "input[name='action']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "action", "ignoreCase": false } ] ], "input[name='foo[bar]']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "foo[bar]", "ignoreCase": false } ] ], "input[name='types[]']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "types[]", "ignoreCase": false } ] ], "input[name=action]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "action", "ignoreCase": false } ] ], "input[name=foo\\ bar]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "foo bar", "ignoreCase": false } ] ], "input[name=foo\\.baz]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "foo.baz", "ignoreCase": false } ] ], "input[name=foo\\[baz\\]]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "equals", "value": "foo[baz]", "ignoreCase": false } ] ], "input[name^='foo[']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "start", "value": "foo[", "ignoreCase": false } ] ], "input[name^='foo[bar]']": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "name", "action": "start", "value": "foo[bar]", "ignoreCase": false } ] ], "input[title=\"Don't click me\"]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "title", "action": "equals", "value": "Don't click me", "ignoreCase": false } ] ], "input[value=Test]": [ [ { "type": "tag", "name": "input" }, { "type": "attribute", "name": "value", "action": "equals", "value": "Test", "ignoreCase": false } ] ], "li": [ [ { "type": "tag", "name": "li" } ] ], "li ~ li": [ [ { "type": "tag", "name": "li" }, { "type": "sibling" }, { "type": "tag", "name": "li" } ] ], "li#attr-child-boosh[attr=boosh]": [ [ { "type": "tag", "name": "li" }, { "type": "attribute", "name": "id", "action": "equals", "value": "attr-child-boosh", "ignoreCase": false }, { "type": "attribute", "name": "attr", "action": "equals", "value": "boosh", "ignoreCase": false } ] ], "li#item_1.first": [ [ { "type": "tag", "name": "li" }, { "type": "attribute", "name": "id", "action": "equals", "value": "item_1", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "first", "ignoreCase": false } ] ], "li#item_1.first.nonexistent": [ [ { "type": "tag", "name": "li" }, { "type": "attribute", "name": "id", "action": "equals", "value": "item_1", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "first", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "nonexistent", "ignoreCase": false } ] ], "li#item_1.nonexistent": [ [ { "type": "tag", "name": "li" }, { "type": "attribute", "name": "id", "action": "equals", "value": "item_1", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "element", "value": "nonexistent", "ignoreCase": false } ] ], "li#item_3[class]": [ [ { "type": "tag", "name": "li" }, { "type": "attribute", "name": "id", "action": "equals", "value": "item_3", "ignoreCase": false }, { "type": "attribute", "name": "class", "action": "exists", "value": "", "ignoreCase": false } ] ], "li:contains(hello)": [ [ { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "contains", "data": "hello" } ] ], "li:contains(human)": [ [ { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "contains", "data": "human" } ] ], "li:contains(humans)": [ [ { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "contains", "data": "humans" } ] ], "li:not(:first-child)": [ [ { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "pseudo", "name": "first-child", "data": null } ] ] } ] ], "meta property thing": [ [ { "type": "tag", "name": "meta" }, { "type": "descendant" }, { "type": "tag", "name": "property" }, { "type": "descendant" }, { "type": "tag", "name": "thing" } ] ], "nonexistent": [ [ { "type": "tag", "name": "nonexistent" } ] ], "ol > li[attr=\"boosh\"]:last-child": [ [ { "type": "tag", "name": "ol" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "attribute", "name": "attr", "action": "equals", "value": "boosh", "ignoreCase": false }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "ol li": [ [ { "type": "tag", "name": "ol" }, { "type": "descendant" }, { "type": "tag", "name": "li" } ] ], "ol ol li#attr-child-boosh[attr=boosh]": [ [ { "type": "tag", "name": "ol" }, { "type": "descendant" }, { "type": "tag", "name": "ol" }, { "type": "descendant" }, { "type": "tag", "name": "li" }, { "type": "attribute", "name": "id", "action": "equals", "value": "attr-child-boosh", "ignoreCase": false }, { "type": "attribute", "name": "attr", "action": "equals", "value": "boosh", "ignoreCase": false } ] ], "ol#list li#attr-child-boosh[attr=boosh]": [ [ { "type": "tag", "name": "ol" }, { "type": "attribute", "name": "id", "action": "equals", "value": "list", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "li" }, { "type": "attribute", "name": "id", "action": "equals", "value": "attr-child-boosh", "ignoreCase": false }, { "type": "attribute", "name": "attr", "action": "equals", "value": "boosh", "ignoreCase": false } ] ], "ol#list>li#attr-child-boosh[attr=boosh]": [ [ { "type": "tag", "name": "ol" }, { "type": "attribute", "name": "id", "action": "equals", "value": "list", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "attribute", "name": "id", "action": "equals", "value": "attr-child-boosh", "ignoreCase": false }, { "type": "attribute", "name": "attr", "action": "equals", "value": "boosh", "ignoreCase": false } ] ], "ol:contains(human)": [ [ { "type": "tag", "name": "ol" }, { "type": "pseudo", "name": "contains", "data": "human" } ] ], "ol:contains(humans)": [ [ { "type": "tag", "name": "ol" }, { "type": "pseudo", "name": "contains", "data": "humans" } ] ], "ol:empty": [ [ { "type": "tag", "name": "ol" }, { "type": "pseudo", "name": "empty", "data": null } ] ], "ol>li": [ [ { "type": "tag", "name": "ol" }, { "type": "child" }, { "type": "tag", "name": "li" } ] ], "ol>li+li": [ [ { "type": "tag", "name": "ol" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "adjacent" }, { "type": "tag", "name": "li" } ] ], "option": [ [ { "type": "tag", "name": "option" } ] ], "option:first-child:contains('o')": [ [ { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "first-child", "data": null }, { "type": "pseudo", "name": "contains", "data": "o" } ] ], "p": [ [ { "type": "tag", "name": "p" } ] ], "p + p": [ [ { "type": "tag", "name": "p" }, { "type": "adjacent" }, { "type": "tag", "name": "p" } ] ], "p .blog": [ [ { "type": "tag", "name": "p" }, { "type": "descendant" }, { "type": "attribute", "name": "class", "action": "element", "value": "blog", "ignoreCase": false } ] ], "p < div": [ [ { "type": "tag", "name": "p" }, { "type": "parent" }, { "type": "tag", "name": "div" } ] ], "p > * > *": [ [ { "type": "tag", "name": "p" }, { "type": "child" }, { "type": "universal" }, { "type": "child" }, { "type": "universal" } ] ], "p > a": [ [ { "type": "tag", "name": "p" }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], "p > a.blog": [ [ { "type": "tag", "name": "p" }, { "type": "child" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "class", "action": "element", "value": "blog", "ignoreCase": false } ] ], "p >a": [ [ { "type": "tag", "name": "p" }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], "p a[href*=#]": [ [ { "type": "tag", "name": "p" }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "any", "value": "#", "ignoreCase": false } ] ], "p a[href^=#]": [ [ { "type": "tag", "name": "p" }, { "type": "descendant" }, { "type": "tag", "name": "a" }, { "type": "attribute", "name": "href", "action": "start", "value": "#", "ignoreCase": false } ] ], "p#blargh": [ [ { "type": "tag", "name": "p" }, { "type": "attribute", "name": "id", "action": "equals", "value": "blargh", "ignoreCase": false } ] ], "p#firstp + p": [ [ { "type": "tag", "name": "p" }, { "type": "attribute", "name": "id", "action": "equals", "value": "firstp", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "p" } ] ], "p#strong": [ [ { "type": "tag", "name": "p" }, { "type": "attribute", "name": "id", "action": "equals", "value": "strong", "ignoreCase": false } ] ], "p, div p": [ [ { "type": "tag", "name": "p" } ], [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "p" } ] ], "p,a": [ [ { "type": "tag", "name": "p" } ], [ { "type": "tag", "name": "a" } ] ], "p.first > a": [ [ { "type": "tag", "name": "p" }, { "type": "attribute", "name": "class", "action": "element", "value": "first", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], "p.foo": [ [ { "type": "tag", "name": "p" }, { "type": "attribute", "name": "class", "action": "element", "value": "foo", "ignoreCase": false } ] ], "p.odd": [ [ { "type": "tag", "name": "p" }, { "type": "attribute", "name": "class", "action": "element", "value": "odd", "ignoreCase": false } ] ], "p:contains(bar)": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "contains", "data": "bar" } ] ], "p:contains(id=\"foo\")[id!=')']": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "contains", "data": "id=\"foo\"" }, { "type": "attribute", "name": "id", "action": "not", "value": ")", "ignoreCase": false } ] ], "p:contains(id=\"foo\")[id!=\\)]": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "contains", "data": "id=\"foo\"" }, { "type": "attribute", "name": "id", "action": "not", "value": ")", "ignoreCase": false } ] ], "p:first-child": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "p:has( a )": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "a" } ] ] } ] ], "p:has(a)": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "has", "data": [ [ { "type": "tag", "name": "a" } ] ] } ] ], "p:last-child": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "p:not(a,p)": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "p" } ] ] } ] ], "p:not(a,p,b)": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "p" } ], [ { "type": "tag", "name": "b" } ] ] } ] ], "p:not(p)": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "p" } ] ] } ] ], "p:not(p,a)": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "not", "data": [ [ { "type": "tag", "name": "p" } ], [ { "type": "tag", "name": "a" } ] ] } ] ], "p:nth-child( 1 )": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "nth-child", "data": " 1 " } ] ], "p:nth-child(1)": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "nth-child", "data": "1" } ] ], "p:nth-child(2)": [ [ { "type": "tag", "name": "p" }, { "type": "pseudo", "name": "nth-child", "data": "2" } ] ], "p> a": [ [ { "type": "tag", "name": "p" }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], "p>a": [ [ { "type": "tag", "name": "p" }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], "p[lang=en] + p": [ [ { "type": "tag", "name": "p" }, { "type": "attribute", "name": "lang", "action": "equals", "value": "en", "ignoreCase": false }, { "type": "adjacent" }, { "type": "tag", "name": "p" } ] ], "param": [ [ { "type": "tag", "name": "param" } ] ], "property[name=prop2]": [ [ { "type": "tag", "name": "property" }, { "type": "attribute", "name": "name", "action": "equals", "value": "prop2", "ignoreCase": false } ] ], "select": [ [ { "type": "tag", "name": "select" } ] ], "select[name='select2'] option:selected": [ [ { "type": "tag", "name": "select" }, { "type": "attribute", "name": "name", "action": "equals", "value": "select2", "ignoreCase": false }, { "type": "descendant" }, { "type": "tag", "name": "option" }, { "type": "pseudo", "name": "selected", "data": null } ] ], "soap\\:Envelope": [ [ { "type": "tag", "name": "soap:envelope" } ] ], "span": [ [ { "type": "tag", "name": "span" } ] ], "span > span": [ [ { "type": "tag", "name": "span" }, { "type": "child" }, { "type": "tag", "name": "span" } ] ], "span span": [ [ { "type": "tag", "name": "span" }, { "type": "descendant" }, { "type": "tag", "name": "span" } ] ], "span ~ #level3_2": [ [ { "type": "tag", "name": "span" }, { "type": "sibling" }, { "type": "attribute", "name": "id", "action": "equals", "value": "level3_2", "ignoreCase": false } ] ], "span#dupL1": [ [ { "type": "tag", "name": "span" }, { "type": "attribute", "name": "id", "action": "equals", "value": "dupL1", "ignoreCase": false } ] ], "span.span_bar": [ [ { "type": "tag", "name": "span" }, { "type": "attribute", "name": "class", "action": "element", "value": "span_bar", "ignoreCase": false } ] ], "span.span_foo": [ [ { "type": "tag", "name": "span" }, { "type": "attribute", "name": "class", "action": "element", "value": "span_foo", "ignoreCase": false } ] ], "span.span_wtf": [ [ { "type": "tag", "name": "span" }, { "type": "attribute", "name": "class", "action": "element", "value": "span_wtf", "ignoreCase": false } ] ], "span:empty > *": [ [ { "type": "tag", "name": "span" }, { "type": "pseudo", "name": "empty", "data": null }, { "type": "child" }, { "type": "universal" } ] ], "span:first-child": [ [ { "type": "tag", "name": "span" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "span:nth-child(5)": [ [ { "type": "tag", "name": "span" }, { "type": "pseudo", "name": "nth-child", "data": "5" } ] ], "span[lang=中文]": [ [ { "type": "tag", "name": "span" }, { "type": "attribute", "name": "lang", "action": "equals", "value": "中文", "ignoreCase": false } ] ], "strong": [ [ { "type": "tag", "name": "strong" } ] ], "strong#strong": [ [ { "type": "tag", "name": "strong" }, { "type": "attribute", "name": "id", "action": "equals", "value": "strong", "ignoreCase": false } ] ], "tostring#toString": [ [ { "type": "tag", "name": "tostring" }, { "type": "attribute", "name": "id", "action": "equals", "value": "toString", "ignoreCase": false } ] ], "ul > li": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" } ] ], "ul > li:first-child": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "first-child", "data": null } ] ], "ul > li:last-child": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "last-child", "data": null } ] ], "ul > li:nth-child(1)": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-child", "data": "1" } ] ], "ul > li:nth-child(2n)": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-child", "data": "2n" } ] ], "ul > li:nth-child(2n+1)": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-child", "data": "2n+1" } ] ], "ul > li:nth-child(even)": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-child", "data": "even" } ] ], "ul > li:nth-child(n)": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-child", "data": "n" } ] ], "ul > li:nth-child(n-128)": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-child", "data": "n-128" } ] ], "ul > li:nth-child(odd)": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-child", "data": "odd" } ] ], "ul > li:nth-last-child(1)": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" }, { "type": "pseudo", "name": "nth-last-child", "data": "1" } ] ], "ul#first": [ [ { "type": "tag", "name": "ul" }, { "type": "attribute", "name": "id", "action": "equals", "value": "first", "ignoreCase": false } ] ], "ul:empty": [ [ { "type": "tag", "name": "ul" }, { "type": "pseudo", "name": "empty", "data": null } ] ], "ul>li": [ [ { "type": "tag", "name": "ul" }, { "type": "child" }, { "type": "tag", "name": "li" } ] ] }css-what-2.1.0/tests/test.js000066400000000000000000000120401262434106400157210ustar00rootroot00000000000000var assert = require("assert"), parse = require("../"); var tests = [ //tag names [ "div", [ [ { "type": "tag", "name": "div" } ] ], "simple tag" ], [ "*", [ [ { "type": "universal" } ] ], "universal" ], //traversal [ "div div", [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "descendant" ], [ "div\t \n \tdiv", [ [ { "type": "tag", "name": "div" }, { "type": "descendant" }, { "type": "tag", "name": "div" } ] ], "descendant /w whitespace" ], [ "div + div", [ [ { "type": "tag", "name": "div" }, { "type": "adjacent" }, { "type": "tag", "name": "div" } ] ], "adjacent" ], [ "div ~ div", [ [ { "type": "tag", "name": "div" }, { "type": "sibling" }, { "type": "tag", "name": "div" } ] ], "sibling" ], [ "p < div", [ [ { "type": "tag", "name": "p" }, { "type": "parent" }, { "type": "tag", "name": "div" } ] ], "parent" ], //Escaped whitespace [ "#\\ > a ", [ [ { "type": "attribute", "action": "equals", "name": "id", "value": " ", "ignoreCase": false }, { "type": "child" }, { "type": "tag", "name": "a" } ] ], "Space between escaped space and combinator" ], [ ".\\ ", [ [ { "type": "attribute", "name": "class", "action": "element", "value": " ", "ignoreCase": false } ] ], "Space after escaped space" ], [ "\\61 ", [ [ { "type": "tag", "name": "a" } ] ], "Numeric escape with space (BMP)" ], [ "\\1d306\\01d306", [ [ { "type": "tag", "name": "\uD834\uDF06\uD834\uDF06" } ] ], "Numeric escape (outside BMP)" ], //attributes [ "[name^=\"foo[\"]", [ [ { "type": "attribute", "name": "name", "action": "start", "value": "foo[", "ignoreCase": false } ] ], "quoted attribute" ], [ "[name^=\"foo[bar]\"]", [ [ { "type": "attribute", "name": "name", "action": "start", "value": "foo[bar]", "ignoreCase": false } ] ], "quoted attribute" ], [ "[name$=\"[bar]\"]", [ [ { "type": "attribute", "name": "name", "action": "end", "value": "[bar]", "ignoreCase": false } ] ], "quoted attribute" ], [ "[href *= \"google\"]", [ [ { "type": "attribute", "name": "href", "action": "any", "value": "google", "ignoreCase": false } ] ], "quoted attribute with spaces" ], [ "[name=foo\\.baz]", [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "foo.baz", "ignoreCase": false } ] ], "attribute with escaped dot" ], [ "[name=foo\\[bar\\]]", [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "foo[bar]", "ignoreCase": false } ] ], "attribute with escaped square brackets" ], [ "[xml\\:test]", [ [ { "type": "attribute", "name": "xml:test", "action": "exists", "value": "", "ignoreCase": false } ] ], "escaped attribute" ], [ "[name='foo ~ < > , bar' i]", [ [ { "type": "attribute", "name": "name", "action": "equals", "value": "foo ~ < > , bar", "ignoreCase": true } ] ], "attribute with previously normalized characters" ], //pseudo selectors [ ":foo", [ [ { "type": "pseudo", "name": "foo", "data": null } ] ], "pseudo selector without any data" ], [ ":bar(baz)", [ [ { "type": "pseudo", "name": "bar", "data": "baz" } ] ], "pseudo selector with data" ], [ ":contains(\"(foo)\")", [ [ { "type": "pseudo", "name": "contains", "data": "(foo)" } ] ], "pseudo selector with data" ], [ ":icontains('')", [ [ { "type": "pseudo", "name": "icontains", "data": "" } ] ], "pseudo selector with quote-stripped data" ], [ ":contains(\"(foo)\")", [ [ { "type": "pseudo", "name": "contains", "data": "(foo)" } ] ], "pseudo selector with data" ], //multiple selectors [ "a , b", [ [ { "type": "tag", "name": "a" } ], [ { "type": "tag", "name": "b" } ] ], "multiple selectors" ] ]; tests.forEach(function(arr, i){ arr[0] = parse(arr[0]); assert.deepEqual.apply(null, arr); console.log("\t%d: '%s' passed", i + 1, arr[2]); }); console.log("\nCollected selectors (qwery, sizzle, nwmatcher)..."); var out = require("./out.json"); Object.keys(out).forEach(function(s){ assert.deepEqual(parse(s), out[s], s); }); console.log("Passed!");