0% found this document useful (0 votes)
396 views

Assert Select

The document provides a cheat sheet for the assert_select method in Ruby on Rails for making assertions on HTML elements selected by CSS selectors. It defines various selectors that can be used, substitution values, selection methods, and provides an example of usage.

Uploaded by

khuonglh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
396 views

Assert Select

The document provides a cheat sheet for the assert_select method in Ruby on Rails for making assertions on HTML elements selected by CSS selectors. It defines various selectors that can be used, substitution values, selection methods, and provides an example of usage.

Uploaded by

khuonglh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

assert_select Cheat Sheet

Selectors
* any element
E an element of type E
E.warning an E element whose class is "warning" (the document language
specifies how class is determined).
E#myid an E element with ID equal to "myid".
E[foo] an E element with a "foo" attribute
E[foo="bar"] an E element whose "foo" attribute value is exactly equal to "bar"
E[foo~="bar"] an E element whose "foo" attribute value is a list of space-separated
values, one of which is exactly equal to "bar"
E[foo^="bar"] an E element whose "foo" attribute value begins exactly with the string
"bar"
E[foo$="bar"] an E element whose "foo" attribute value ends exactly with the string
"bar"
E[foo*="bar"] an E element whose "foo" attribute value contains the substring "bar"
E[hreflang|="en"] an E element whose "hreflang" attribute has a hyphen-separated list of
values beginning (from the left) with "en"
E:root an E element, root of the document
E:nth-child(n) an E element, the n-th child of its parent
E:nth-last-child(n) an E element, the n-th child of its parent, counting from the last one
E:nth-of-type(n) an E element, the n-th sibling of its type
E:nth-last-of-type(n) an E element, the n-th sibling of its type, counting from the last one
E:first-child an E element, first child of its parent
E:last-child an E element, last child of its parent
E:first-of-type an E element, first sibling of its type
E:last-of-type an E element, last sibling of its type
E:only-child an E element, only child of its parent
E:only-of-type an E element, only sibling of its type
E:empty an E element that has no children (including text nodes)
E:not(s) an E element that does not match simple selector s
E F an F element descendant of an E element
E > F an F element child of an E element
E + F an F element immediately preceded by an E element
E ~ F an F element preceded by an E element

Substitution Values
.? Class name
#? ID attribute
[foo=?] Attribute value
May be string or regular expression, e.g. "[foo=?]", /bar/i.
assert_select Cheat Sheet
Methods
assert_select(selector, *values, equality?, message?) { |elems| ... }
assert_select(element, selector, *values, equality?, message?) { |elems| ... }
Use selector to select elements from response page or first argument (element), and evalute
equality test. Raises exception with message if equality tests fail.
Equality tests include:
true At least one element found (:minimum=>1)
false No element found (:count=>0)
text, :text=>text All elements found have the text contents (string or regexp)
n, :count=>n Exactly n elements found
:minimum=>n At least n elements found
:maximum=>n At most n elements found
n..m Between n and m elements found
If no count specified, default is :minimum=>1.
With block, calls block with all selected elements. Calling assert_select (or any of the other
functions) within that block operates on element selected by outer block.
assert_select_rjs(id?) { |elems| ... }
assert_select_rjs(statement, id?) { |elems| ... }
assert_select_rjs(:insert, position, id?) { |elems| ... }
Asserts that RJS statement updates/inserts HTML content and allows nested assertions on the
content.
With id, selects only RJS statement affecting elements with that id. With statement, RJS
statements that :replace, :replace_html or :insert. With :insert can limit position (:before,
:after, etc).
assert_select_email() { |elems| ... }
Assertions on the (HTML) body of the delivered e-mail.
assert_select_encoded(element?) { |elems| ... }
For operating on encoded HTML (e.g. RSS item description).
css_select(selector, *values) => array
css_select(element, selector, *values) => array
Returns an array with selected elements (empty if no elements selected).

Example
assert_select "html:root>head>title", "Login"
assert_select "form[action=?]", url_for(:action=>"login") do
assert_select "input[type=text][name=username]"
assert_select "input[type=password][name=password]"
end

© 2006 Assaf Arkin http://labnotes.org


Released under Creative Commons Attribution

You might also like