Xpath | CSS |
---|---|
//h1[not(@id)] |
h1:not([id]) |
//button[text()="Submit"] |
Text match |
//button[contains(text(),"Go")] |
Text contains (substring) |
//product[@price > 2.50] |
Arithmetic |
//ul[*] |
Has children |
//ul[li] |
Has children (specific) |
//a[@name or @href] |
Or logic |
//a | //div |
Union (joins results) |
XPath Selectors
Misc selectors
jQuery
Xpath | CSS |
---|---|
//ul/li/.. |
$('ul > li').parent() |
//li/ancestor-or-self::section |
$('li').closest('section') |
//a/@href |
$('a').attr('href') |
//span/text() |
$('span').text() |
Siblings
Xpath | CSS |
---|---|
//h1/following-sibling::ul |
h1 ~ ul |
//h1/following-sibling::ul[1] |
h1 + ul |
//h1/following-sibling::[@id="id"] |
h1 ~ #id |
Attribute selectors
Xpath | CSS |
---|---|
//*[@id="id"] |
#id |
//*[@class="class"] |
.class |
//input[@type="submit"] |
input[type="submit"] |
//a[@id="abc"][@for="xyz"] |
a#abc[for="xyz"] |
//a[@rel] |
a[rel] |
//a[starts-with(@href, '/')] |
a[href^='/'] |
//a[ends-with(@href, '.pdf')] |
a[href$='pdf'] |
//a[contains(@href, '://')] |
a[href*=': //'] |
//a[contains(@rel, 'help')] |
a[rel~='help'] |
Order selectors
Xpath | CSS |
---|---|
//ul/li[1] |
ul > li:first-child |
//ul/li[2] |
ul > li:nth-child(2) |
//ul/li[last()] |
ul > li:last-child |
//li[@id="id"][1] |
li#id:first-child |
//a[1] |
a:first-child |
//a[last()] |
a:last-child |
Descendant selectors
Xpath | CSS |
---|---|
//h1 |
h1 |
//div//p |
div p |
//ul/li |
ul > li |
//ul/li/a |
ul > li > a |
//div/* |
div > * |
/ |
:root |
/html/body |
:root > body |
Getting started
- Xpath test bed (whitebeam.org) Test in Firefox or Chrome console:
$x('/html/body')
$x('//h1')
$x('//h1')[0].innerText
$x('//a[text()="XPath"]')[0].click()
Comments