Search code examples
rspecautomationcucumbercapybarasite-prism

Using SitePrism's page object elements to perform page assertions


I want to know if there's a way to perform a page.should assertion with a page object element directly, instead of giving the xpath or CSS selector string as a parameter.

i.e.:

Page class:

class FooClass < SitePrism::Page
  element :action_select, '.autocomplete.medium'
end

Step definition:

page.should have_css('.autocomplete.medium')

#Sort of thing desired:

page.should have_css(action_select.get_css)

That .get_css does not exist but it's used to illustrate what's desired.


Solution

  • The element method creates a has_<element name>? method that can check the existence of the element.

    For example, for your page:

    page.has_action_select?
    #=> returns true if it exists, false if it doesn't
    

    This allows your assertion to be:

    page.should have_action_select
    

    For more details, you can see the site prism page.