常用的CSS定位,XPath定位和JPath定位
CSS定位
| 举例 | 描述 |
| div#menu | id为menu的div元素 |
| div.action-btn.ok-btn | class为action-btn和ok-btn的div元素 |
| table#emailList tr:nth-child(2) | id为emailList的table里面的第二个tr元素。括号里的index从1开始。 |
| input[type='submit'] | 具有属性type并且其值为submit的input元素 |
| div[id^='menu'] | 具有属性id并且其值的前缀为menu的div元素 |
| div[id$='menu'] | 具有属性id并且其值的后缀为menu的div元素 |
| div[id*='menu'] | 具有属性id并且其值包含menu的div元素 |
| div[id*='menu']:not([style*='display: none']) | 具有属性id和style并且id值包含menu,style值不包含‘display:none’的div元素 |
| div#menu>ul.item | id为menu的div元素下面最靠近它的class为item的ul元素 |
XPath定位
| 表达式 | 描述 |
| nodename | 选取此节点的所有子节点 |
| / | 从根节点选取 |
| // | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
| . | 选取当前节点 |
| .. | 选取当前节点的父节点 |
| @ | 选取属性 |
| 举例 | 描述 |
| /bookstore/book[1] | 选取属于 bookstore 子元素的第一个 book 元素。index从1开始。 |
| /bookstore/book[last()] | 选取属于 bookstore 子元素的最后一个 book 元素。 |
| /bookstore/book[last()-1] | 选取属于 bookstore 子元素的倒数第二个 book 元素。 |
| /bookstore/book[position()<3] | 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 |
| //title[@lang] | 选取所有拥有名为 lang 的属性的 title 元素。 |
| //title[@lang='eng'] | 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 |
| /bookstore/book[price>35.00] | 选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 35.00。 |
| /bookstore/book[price>35.00]/title | 选取所有 bookstore 元素中的 book 元素的 title 元素,且其中的 price 元素的值须大于 35.00。 |
JPath定位
| 表达式 | 描述 |
| $ | The root element to query. This starts all path expressions. |
| @ | The current node being processed by a filter predicate. |
| * | Wildcard. Available anywhere a name or numeric are required. |
| .. | Deep scan. Available anywhere a name is required. |
| .<name> | Dot-notated child |
| ['<name>' (, '<name>')] | Bracket-notated child or children |
| [<number> (, <number>)] | Array index or indexes |
| [start:end] | Array slice operator |
| [?(<expression>)] | Filter expression. Expression must evaluate to a boolean value. |
| 举例 | 描述 |
| $.store.book[*].author | The authors of all books |
| $..author | All authors |
| $.store.* | All things, both books and bicycles |
| $.store..price | The price of everything |
| $..book[2] | The third book |
| $..book[0,1] | The first two books |
| $..book[:2] | All books from index 0 (inclusive) until index 2 (exclusive) |
| $..book[1:2] | All books from index 1 (inclusive) until index 2 (exclusive) |
| $..book[-2:] | Last two books |
| $..book[2:] | Book number two from tail |
| $..book[?(@.isbn)] | All books with an ISBN number |
| $.store.book[?(@.price < 10)] | All books in store cheaper than 10 |
| $..book[?(@.price <= $['expensive'])] | All books in store that are not "expensive" |
| $..book[?(@.author =~ /.*REES/i)] | All books matching regex (ignore case) |
| $..* | Give me every thing |
| $..book.length() | The number of books |
浙公网安备 33010602011771号