-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparams.json
More file actions
1 lines (1 loc) · 26.7 KB
/
params.json
File metadata and controls
1 lines (1 loc) · 26.7 KB
1
{"name":"seleniumQuery - Cross-Driver (Cross-Browser) jQuery-like native Java interface for Selenium WebDriver","tagline":"selenium jquery java","body":"seleniumQuery v0.5.0 - jQuery in Selenium\r\n======\r\n\r\nJava library that allows the use of a **jQuery-like native interface** for [Selenium WebDriver](http://docs.seleniumhq.org/projects/webdriver/).\r\n\r\nExample snippet:\r\n\r\n`````java\r\n// getting the value\r\nString oldStreet = $(\"input.street\").val();\r\n// setting the value\r\n$(\"input.street\").val(\"4th St!\");\r\n`````\r\nAllows querying elements by **XPath**, **CSS Selectors** and even some **jQuery/Sizzle enhancements**, such as `:eq()`, `:not()` and others!\r\n\r\nBuilt using Selenium WebDriver's native capabilities **only**:\r\n- No `jQuery.js` is embedded at the page, no side-effects are generated;\r\n- Works predictably and exactly the same with any (including legacy, old JSF) system;\r\n- Doesn't matter if the page uses jQuery or not (or even if the JavaScript global variable `$` is other library like `Prototype.js`).\r\n- **Capable of testing JavaScript-disabled pages**\r\n - Test pages that use [Unobtrusive JavaScript!](http://en.wikipedia.org/wiki/Unobtrusive_JavaScript)\r\n - Most functions don't even require a browser/driver with JavaScript enabled!\r\n - (Exceptions are functions like `.trigger()` which obviously requires JavaScript on the browser.)\r\n\r\n##TL; DR: Running Example\r\n\r\nTry it out now with the running example below:\r\n\r\n`````java\r\nimport static org.openqa.selenium.seleniumquery.SeleniumQuery.$; // this will allow the short syntax\r\n\r\nimport org.openqa.selenium.firefox.FirefoxDriver;\r\n\r\npublic class SeleniumQueryExample {\r\n public static void main(String[] args) {\r\n $.browser.setDefaultDriver(new FirefoxDriver()); // sets the driver used by $()\r\n \r\n $.location.href(\"http://www.google.com\"); // opens a page\r\n \r\n $(\"input[name='q']\").val(\"selenium\");\r\n $(\"button[name='btnG']\").click();\r\n System.out.println($(\"#resultStats\").text());\r\n\r\n // Besides the short syntax and the useful assumptions, the most useful capabilities of\r\n // seleniumQuery are the .waitUntil. functions, especially handy for Ajax handling:\r\n \r\n /*\r\n $(\"input[name='q']\").waitUntil().is(\":not(:present)\");\r\n */\r\n \r\n // The line above throws an exception as that input never goes away in google.com.\r\n\r\n $.browser.quitDefaultBrowser(); // quits the firefox driver\r\n }\r\n}\r\n`````\r\nTo get **seleniumQuery**'s latest snapshot, add this to your **`pom.xml`**:\r\n\r\n`````xml\r\n<!-- The project dependency -->\r\n<dependencies>\r\n <dependency>\r\n <groupId>com.github.fervet</groupId>\r\n <artifactId>seleniumquery</artifactId>\r\n <version>0.4.0-RC3</version>\r\n </dependency>\r\n</dependencies>\r\n<!-- The repository URL, so maven can download it directly -->\r\n<repositories>\r\n <repository>\r\n <id>Repo for seleniumQuery</id>\r\n <url>https://raw.github.com/fervet/snapshots-repository/master</url>\r\n </repository>\r\n</repositories>\r\n`````\r\n\r\n\r\n#Features\r\n\r\n###More readable jQuery-like syntax code\r\n\r\nMake your code/tests more readable and easier to maintain. Leverage your knowledge of jQuery.\r\n\r\n`````java\r\n// Instead of regular Selenium code:\r\nWebElement element = driver.findElement(By.id(\"mySelect\"));\r\nnew Select(element).selectByVisibleText(\"Ford\");\r\n\r\n// You can have the same effect writing just:\r\n$(\"#mySelect\").val(\"Ford\");\r\n`````\r\n\r\n\r\n###Waiting capabilities for improved Ajax testing\r\n\r\nOther important feature is the leverage of `WebDriver`'s `FluentWait` capabilities **directly** in the element through the use of `.waitUntil()` and `.queryUntil()`:\r\n\r\n`````java\r\n/*\r\n * Selenium WebDriver cannot natively detect the end of an Ajax call.\r\n * To test your application behaviour, you can/should work with the Ajax's expected effects.\r\n * \r\n * Below is an example of a <div> that should be hidden as effect of an Ajax call.\r\n * The code will only continue after it is gone. If not, it will throw a timeout exception.\r\n */\r\n$(\"#ajaxDiv\").click();\r\n$(\"#ajaxDiv\").waitUntil().is(\":not\").visible();\r\n\r\n// Or, fluently:\r\n$(\"#ajaxDiv\").click().waitUntil().is(\":not\").visible();\r\n`````\r\n\r\n\r\n#API\r\n\r\nFor the currently implemented jQuery functions check the [supported list below](#supported-jquery-functions).\r\n\r\nIn order to handle interactions with Ajax-enabled pages, you can use the `.queryUntil()` and `.waitUntil()` functions:\r\n- The `.queryUntil()` functions will requery for the elements until the given condition is met, returning a new seleniumQuery object when that happens.\r\n- The `.waitUntil()` will act only on the elements matched when the seleniumQuery object was built (the `$()` was called).\r\n\r\n`````java\r\n// .queryUntil() will requery the DOM every time until the matched set fulfills the requirements\r\n\r\n// .is() functions\r\n$(\".aDivDiv\").queryUntil().is(\":present\");\r\n$(\".myInput\").queryUntil().is(\":enabled\");\r\n$(\".aDivDiv\").queryUntil().is(\":visible\");\r\n$(\".myInput\").queryUntil().is(\":visibleAndEnabled\");\r\n// .has() functions\r\n$(\".myInput\").queryUntil().has().valEqualTo(\"expectedValue\");\r\n$(\".aDivDiv\").queryUntil().has().textContaining(\"expectedText\");\r\n// both .is() and .has() can use .not()\r\n$(\".myInput\").queryUntil().is(\":not\").enabled();\r\n$(\".myInput\").queryUntil().has().not().valEqualTo(\"expectedValue\");\r\n\r\n// .waitUntil() will work only on the already matched set, and have the exact same set of functions\r\n\r\n// .is() functions\r\n$(\".aDivDiv\").waitUntil().is(\":present\");\r\n$(\".myInput\").waitUntil().is(\":enabled\");\r\n$(\".aDivDiv\").waitUntil().is(\":visible\");\r\n$(\".myInput\").waitUntil().is(\":visibleAndEnabled\");\r\n// .has() functions\r\n$(\".myInput\").waitUntil().has().valEqualTo(\"expectedValue\");\r\n$(\".aDivDiv\").waitUntil().has().textContaining(\"expectedText\");\r\n// both .is() and .has() can use .not()\r\n$(\".myInput\").waitUntil().is(\":not\").enabled();\r\n$(\".myInput\").waitUntil().has().not().valEqualTo(\"expectedValue\");\r\n`````\r\n\r\nGlobal object (static) functions:\r\n\r\n- `$.location.href(\"http://www.url.to.go.com\");`: Opens a URL\r\n- `$.location.href(new File(\"path/to/localFile.html\"));`: Opens a local file\r\n- `$.browser.setDefaultBrowser(webDriver);`: Sets the browser to be used by `$(\".selector\")`\r\n- `$.browser.sleep(10, TimeUnit.SECONDS);`: Instructs the browser (thread) to wait (sleep) for the given time.\r\n\r\n###Note on Java Convention\r\n\r\nIf the dollar symbol `$` gives you the yikes, it is important to notice that the `$` used is not a class name, but a `static` method (and field) imported statically. Still, if you don't feel like using it, you can resort to `sQ()` or good ol' `jQuery()` and benefit from all the same functions:\r\n\r\n`````java\r\nimport static org.openqa.selenium.seleniumquery.SeleniumQuery.sQ;\r\nimport static org.openqa.selenium.seleniumquery.SeleniumQuery.jQuery;\r\n...\r\nString oldStreet = sQ(\"input.street\").val();\r\nsQ(\"input.street\").val(\"4th St!\");\r\n\r\nString oldStreetz = jQuery(\"input.street\").val();\r\njQuery(\"input.street\").val(\"5th St!\");\r\n`````\r\n\r\n#Supported jQuery Functions\r\n\r\nAs seleniumQuery main goals are emulating user actions and \"sensing\" the pages, currently our intention is to implement functions that read (\"sense\") the state of the page plus those that manipulate forms.\r\n\r\nBy following the principle above, supporting functions like `.val()` and `.find()` are among our priorities, whereas `.addClass()` and `.attr('attributeName', 'attributeValue')` are not.\r\n\r\nSome functions, specially those that require JavaScript enabled in the browser/driver, take the best-case approach, in the sense that it may or may not work for specific versions of some browsers.\r\nAdding cross-browser support is among our goals, but keep in mind that user-emulating functions (as stated before) are our priorities and would be fixed first.\r\n\r\nBelow you will find the list of current jQuery functions, by category, divided among supported and not supported by seleniumQuery.\r\n\r\nLooking for a function not listed below? The functions we did not add in the list below were either considered not applicable (like `jQuery.noConflict()` or `.data()`) or of no use (as the [Ajax](http://api.jquery.com/category/ajax/) functions: why would anyone want to issue an Ajax function directly/explicitly through selenium? Usually, ajax in selenium is related to waiting for the browser to end Ajax calls. For that, check the `.waitUntil()` and `.queryUntil()` functions).\r\n\r\n##[Attributes](http://api.jquery.com/category/attributes/)\r\n\r\n###Suported\r\n\r\n- [`.attr()`](http://api.jquery.com/attr/) - Get the value of an attribute for the first element in the set of matched elements or set one or more attributes for every matched element.\r\n- [`.html()`](http://api.jquery.com/html/) - Get the HTML contents of the first element in the set of matched elements or set the HTML contents of every matched element.\r\n- [`.prop()`](http://api.jquery.com/prop/) - Get the value of a property for the first element in the set of matched elements or set one or more properties for every matched element.\r\n- [`.removeAttr()`](http://api.jquery.com/removeAttr/) - Remove an attribute from each element in the set of matched elements.\r\n- [`.val()`](http://api.jquery.com/val/) - Get the current value of the first element in the set of matched elements or set the value of every matched element.\r\n\r\n###Soon (next release roadmap)\r\n\r\n- [`.hasClass()`](http://api.jquery.com/hasClass/) - Determine whether any of the matched elements are assigned the given class.\r\n\r\n###Not supported\r\n\r\n- [`.addClass()`](http://api.jquery.com/addClass/) - Adds the specified class(es) to each of the set of matched elements.\r\n- [`.removeClass()`](http://api.jquery.com/removeClass/) - Remove a single class, multiple classes, or all classes from each element in the set of matched elements.\r\n- [`.removeProp()`](http://api.jquery.com/removeProp/) - Remove a property for the set of matched elements.\r\n- [`.toggleClass()`](http://api.jquery.com/toggleClass/) - Add or remove one or more classes from each element in the set of matched elements, depending on either the class’s presence or the value of the switch argument.\r\n\r\n\r\n##[CSS](http://api.jquery.com/category/css/)\r\n\r\n###Soon\r\n\r\n- [`.hasClass()`](http://api.jquery.com/hasClass/) - Determine whether any of the matched elements are assigned the given class.\r\n\r\n###Not Supported\r\n\r\n- [`.addClass()`](http://api.jquery.com/addClass/) - Adds the specified class(es) to each of the set of matched elements.\r\n- [`.css()`](http://api.jquery.com/css/) - Get the value of a style property for the first element in the set of matched elements or set one or more CSS properties for every matched element.\r\n- [`.height()`](http://api.jquery.com/height/) - Get the current computed height for the first element in the set of matched elements or set the height of every matched element.\r\n- [`.innerHeight()`](http://api.jquery.com/innerHeight/) - Get the current computed height for the first element in the set of matched elements, including padding but not border.\r\n- [`.innerWidth()`](http://api.jquery.com/innerWidth/) - Get the current computed inner width (including padding but not border) for the first element in the set of matched elements or set the inner width of every matched element.\r\n- [`.offset()`](http://api.jquery.com/offset/) - Get the current coordinates of the first element, or set the coordinates of every element, in the set of matched elements, relative to the document.\r\n- [`.outerHeight()`](http://api.jquery.com/outerHeight/) - Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin. Returns a number (without “px”) representation of the value or null if called on an empty set of elements.\r\n- [`.outerWidth()`](http://api.jquery.com/outerWidth/) - Get the current computed width for the first element in the set of matched elements, including padding and border.\r\n- [`.position()`](http://api.jquery.com/position/) - Get the current coordinates of the first element in the set of matched elements, relative to the offset parent.\r\n- [`.removeClass()`](http://api.jquery.com/removeClass/) - Remove a single class, multiple classes, or all classes from each element in the set of matched elements.\r\n- [`.scrollLeft()`](http://api.jquery.com/scrollLeft/) - Get the current horizontal position of the scroll bar for the first element in the set of matched elements or set the horizontal position of the scroll bar for every matched element.\r\n- [`.scrollTop()`](http://api.jquery.com/scrollTop/) - Get the current vertical position of the scroll bar for the first element in the set of matched elements or set the vertical position of the scroll bar for every matched element.\r\n- [`.toggleClass()`](http://api.jquery.com/toggleClass/) - Add or remove one or more classes from each element in the set of matched elements, depending on either the class’s presence or the value of the switch argument.\r\n- [`.width()`](http://api.jquery.com/width/) - Get the current computed width for the first element in the set of matched elements or set the width of every matched element.\r\n\r\n##[Events](http://api.jquery.com/category/events/)\r\n\r\n###Supported\r\n\r\n- [`.trigger()`](http://api.jquery.com/trigger/) - Execute all handlers and behaviors attached to the matched elements for the given event type.\r\n- [`.click()`](http://api.jquery.com/click/) - Trigger the \"click\" JavaScript event on the matched elements.\r\n- [`.focus()`](http://api.jquery.com/focus/) - Trigger the \"focus\" JavaScript event on the matched elements.\r\n\r\n###Soon\r\n\r\n- [`.keyup()`](http://api.jquery.com/keyup/) - Trigger the \"keyup\" JavaScript event on the matched elements.\r\n- [`.blur()`](http://api.jquery.com/blur/) - Trigger the \"blur\" JavaScript event on the matched elements.\r\n\r\n###Not supported\r\n\r\n- [`.change()`](http://api.jquery.com/change/) - Trigger the \"change\" JavaScript event on the matched elements.\r\n- [`.dblclick()`](http://api.jquery.com/dblclick/) - Trigger the \"dblclick\" JavaScript event on the matched elements.\r\n- [`.keydown()`](http://api.jquery.com/keydown/) - Trigger the \"keydown\" JavaScript event on the matched elements.\r\n- [`.keypress()`](http://api.jquery.com/keypress/) - Trigger the \"keypress\" JavaScript event on the matched elements.\r\n- [`.mousedown()`](http://api.jquery.com/mousedown/) - Trigger the \"mousedown\" JavaScript event on the matched elements.\r\n- [`.mouseenter()`](http://api.jquery.com/mouseenter/) - Trigger the \"mouseenter\" JavaScript event on the matched elements.\r\n- [`.mouseleave()`](http://api.jquery.com/mouseleave/) - Trigger the \"mouseleave\" JavaScript event on the matched elements.\r\n- [`.mousemove()`](http://api.jquery.com/mousemove/) - Trigger the \"mousemove\" JavaScript event on the matched elements.\r\n- [`.mouseout()`](http://api.jquery.com/mouseout/) - Trigger the \"mouseout\" JavaScript event on the matched elements.\r\n- [`.mouseover()`](http://api.jquery.com/mouseover/) - Trigger the \"mouseover\" JavaScript event on the matched elements.\r\n- [`.mouseup()`](http://api.jquery.com/mouseup/) - Trigger the \"mouseup\" JavaScript event on the matched elements.\r\n- [`.resize()`](http://api.jquery.com/resize/) - Trigger the \"resize\" JavaScript event on the matched elements.\r\n- [`.scroll()`](http://api.jquery.com/scroll/) - Trigger the \"scroll\" JavaScript event on the matched elements.\r\n- [`.select()`](http://api.jquery.com/select/) - Trigger the \"select\" JavaScript event on the matched elements.\r\n- [`.submit()`](http://api.jquery.com/submit/) - Trigger the \"submit\" JavaScript event on the matched elements.\r\n\r\n##[Forms](http://api.jquery.com/category/forms/)\r\n\r\n###Supported\r\n\r\n- [`.val()`](http://api.jquery.com/val/) - Get the current value of the first element in the set of matched elements or set the value of every matched element.\r\n\r\n###Not Supported\r\n\r\n- [`jQuery.param()`](http://api.jquery.com/jQuery.param/) - Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request.\r\n- [`.serialize()`](http://api.jquery.com/serialize/) - Encode a set of form elements as a string for submission.\r\n- [`.serializeArray()`](http://api.jquery.com/serializeArray/) - Encode a set of form elements as an array of names and values.\r\n\r\n\r\n##[Miscellaneous](http://api.jquery.com/category/miscellaneous/)\r\n\r\n###Supported\r\n\r\n- [`.get()`](http://api.jquery.com/get/) - Retrieve the DOM elements matched by the jQuery object.\r\n- [`.size()`](http://api.jquery.com/size/) - Return the number of elements in the jQuery object.\r\n\r\n###Soon\r\n\r\n- [`.toArray()`](http://api.jquery.com/toArray/) - Retrieve all the elements contained in the jQuery set, as an array.\r\n\r\n###Not Supported\r\n\r\n- [`.each()`](http://api.jquery.com/each/) - Iterate over a jQuery object, executing a function for each matched element.\r\n- [`.index()`](http://api.jquery.com/index/) - Search for a given element from among the matched elements.\r\n\r\n\r\n##[Traversing functions](http://api.jquery.com/category/traversing/)\r\n\r\n###Supported\r\n\r\n- [`.find()`](http://api.jquery.com/find/) - Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element.\r\n- [`.first()`](http://api.jquery.com/first/) - Reduce the set of matched elements to the first in the set.\r\n- [`.not()`](http://api.jquery.com/not/) - Remove elements from the set of matched elements.\r\n- [`.parent()`](http://api.jquery.com/parent/) - Get the parent of each element in the current set of matched elements, optionally filtered by a selector.\r\n\r\n###Soon\r\n\r\n- [`.children()`](http://api.jquery.com/children/) - Get the children of each element in the set of matched elements, optionally filtered by a selector.\r\n- [`.eq()`](http://api.jquery.com/eq/) - Reduce the set of matched elements to the one at the specified index.\r\n\r\n\r\n###Not supported\r\n\r\n - [`.add()`](http://api.jquery.com/add/) - Add elements to the set of matched elements.\r\n - [`.addBack()`](http://api.jquery.com/addBack/) - Add the previous set of elements on the stack to the current set, optionally filtered by a selector.\r\n - [`.andSelf()`](http://api.jquery.com/andSelf/) - Add the previous set of elements on the stack to the current set.\r\n - [`.closest()`](http://api.jquery.com/closest/) - For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\r\n - [`.contents()`](http://api.jquery.com/contents/) - Get the children of each element in the set of matched elements, including text and comment nodes.\r\n - [`.each()`](http://api.jquery.com/each/) - Iterate over a jQuery object, executing a function for each matched element.\r\n - [`.end()`](http://api.jquery.com/end/) - End the most recent filtering operation in the current chain and return the set of matched elements to its previous state.\r\n - [`.filter()`](http://api.jquery.com/filter/) - Reduce the set of matched elements to those that match the selector or pass the function’s test.\r\n - [`.has()`](http://api.jquery.com/has/) - Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element.\r\n - [`.is()`](http://api.jquery.com/is/) - Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments.\r\n - [`.last()`](http://api.jquery.com/last/) - Reduce the set of matched elements to the final one in the set.\r\n - [`.map()`](http://api.jquery.com/map/) - Pass each element in the current matched set through a function, producing a new jQuery object containing the return values.\r\n - [`.next()`](http://api.jquery.com/next/) - Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector.\r\n - [`.nextAll()`](http://api.jquery.com/nextAll/) - Get all following siblings of each element in the set of matched elements, optionally filtered by a selector.\r\n - [`.nextUntil()`](http://api.jquery.com/nextUntil/) - Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed.\r\n - [`.offsetParent()`](http://api.jquery.com/offsetParent/) - Get the closest ancestor element that is positioned.\r\n - [`.parents()`](http://api.jquery.com/parents/) - Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector.\r\n - [`.parentsUntil()`](http://api.jquery.com/parentsUntil/) - Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object.\r\n - [`.prev()`](http://api.jquery.com/prev/) - Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector.\r\n - [`.prevAll()`](http://api.jquery.com/prevAll/) - Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector.\r\n - [`.prevUntil()`](http://api.jquery.com/prevUntil/) - Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object.\r\n - [`.siblings()`](http://api.jquery.com/siblings/) - Get the siblings of each element in the set of matched elements, optionally filtered by a selector.\r\n - [`.slice()`](http://api.jquery.com/slice/) - Reduce the set of matched elements to a subset specified by a range of indices.\r\n\r\n##[Properties](http://api.jquery.com/category/properties/)\r\n\r\n- [`.length`](http://api.jquery.com/length/) - The number of elements in the jQuery object.\r\n - This functionality is available through the `.size()` function.\r\n- [`.selector`](http://api.jquery.com/selector/) - A selector representing selector passed to jQuery(), if any, when creating the original set.\r\n - This functionality is available through the `.getBy()` function and, as `.selector` was, depending on the context, is not always available.\r\n\r\n\r\n#CSS and jQuery Extension Selectors\r\n\r\nBelow the list of current supported noteworthy CSS and jQuery Extension selectors.\r\n\r\nAs expected, the note jQuery usually displays in their extensions applies to seleniumQuery as well: Queries using the extended selectors cannot take advantage of the performance boost provided by the native DOM `querySelectorAll()` method. This way, if your code has performance issues, you may achive faster results by using native CSS selectors.\r\n\r\n###Supported\r\n\r\n- [`:checked` Selector](https://api.jquery.com/checked-selector/) - Matches all elements that are checked or selected.\r\n- [`:contains()` Selector](http://api.jquery.com/contains-selector/) - Select all elements that contain the specified text.\r\n- [`:disabled` Selector](http://api.jquery.com/disabled-selector/) - Selects all elements that are disabled.\r\n- [`:enabled` Selector](http://api.jquery.com/enabled-selector/) - Selects all elements that are enabled.\r\n- [`:eq()` Selector](http://api.jquery.com/eq-selector/) - Select the element at index n within the matched set.\r\n- [`:hidden` Selector](http://api.jquery.com/hidden-selector/) - Selects all elements that are hidden.\r\n- [`:selected` Selector](http://api.jquery.com/selected-selector/) - Selects all elements that are selected.\r\n- [`:visible` Selector](http://api.jquery.com/visible-selector/) - Selects all elements that are visible.\r\n\r\n###Soon (next release roadmap)\r\n\r\n- [`:input` Selector](http://api.jquery.com/input-selector/) - Selects all input, textarea, select and button elements.\r\n- [`:button` Selector](http://api.jquery.com/button-selector/) - Selects all button elements and elements of type button.\r\n- [`:checkbox` Selector](http://api.jquery.com/checkbox-selector/) - Selects all elements of type checkbox.\r\n- [`:even` Selector](http://api.jquery.com/even-selector/) - Selects even elements, zero-indexed. See also odd.\r\n- [`:first` Selector](http://api.jquery.com/first-selector/) - Selects the first matched element.\r\n- [`:gt()` Selector](http://api.jquery.com/gt-selector/) - Select all elements at an index greater than index within the matched set.\r\n- [`:header` Selector](http://api.jquery.com/header-selector/) - Selects all elements that are headers, like h1, h2, h3 and so on.\r\n- [`:last` Selector](http://api.jquery.com/last-selector/) - Selects the last matched element.\r\n- [`:lt()` Selector](http://api.jquery.com/lt-selector/) - Select all elements at an index less than index within the matched set.\r\n- [`:odd` Selector](http://api.jquery.com/odd-selector/) - Selects odd elements, zero-indexed. See also even.\r\n- [`:password` Selector](http://api.jquery.com/password-selector/) - Selects all elements of type password.\r\n- [`:radio` Selector](http://api.jquery.com/radio-selector/) - Selects all elements of type radio.\r\n- [`:reset` Selector](http://api.jquery.com/reset-selector/) - Selects all elements of type reset.\r\n- [`:submit` Selector](http://api.jquery.com/submit-selector/) - Selects all elements of type submit.\r\n- [`:text` Selector](http://api.jquery.com/text-selector/) - Selects all elements of type text.\r\n\r\n\r\n###Not Supported\r\n- [`:animated` Selector](http://api.jquery.com/animated-selector/) - Select all elements that are in the progress of an animation at the time the selector is run.\r\n- [Attribute Not Equal Selector `[name!=\"value\"]`](http://api.jquery.com/attribute-not-equal-selector/) - Select elements that either don't have the specified attribute, or do have the specified attribute but not with a certain value.\r\n- [`:file` Selector](http://api.jquery.com/file-selector/) - Selects all elements of type file.\r\n- [`:focus` Selector](http://api.jquery.com/focus-selector/) - Selects element if it is currently focused.\r\n- [`:has()` Selector](http://api.jquery.com/has-selector/) - Selects elements which contain at least one element that matches the specified selector.\r\n- [`:image` Selector](http://api.jquery.com/image-selector/) - Selects all elements of type image.\r\n- [`:parent` Selector](http://api.jquery.com/parent-selector/) - Select all elements that have at least one child node (either an element or text).\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}