Method: Capybara.add_selector
- Defined in:
- lib/capybara.rb
.add_selector(name, **options) { ... } ⇒ Object
Add a new selector to Capybara. Selectors can be used by various methods in Capybara to find certain elements on the page in a more convenient way. For example adding a selector to find certain table rows might look like this:
Capybara.add_selector(:row) do
xpath { |num| ".//tbody/tr[#{num}]" }
end
This makes it possible to use this selector in a variety of ways:
find(:row, 3)
page.find('table#myTable').find(:row, 3).text
page.find('table#myTable').has_selector?(:row, 3)
within(:row, 3) { expect(page).to have_content('$100.000') }
Here is another example:
Capybara.add_selector(:id) do
xpath { |id| XPath.descendant[XPath.attr(:id) == id.to_s] }
end
Note that this particular selector already ships with Capybara.
182 183 184 |
# File 'lib/capybara.rb', line 182 def add_selector(name, **, &block) Capybara::Selector.add(name, **, &block) end |