capybara

2
Navigation > visit visit visit navigates to a particular path. Pass a string or use one of Rails’ path helpers. visit '/blog' visit blogs_path > click_on click_on click_on will click an anchor tag, button, or input with type submit. Pass a string containing the anchor text. click_on 'Sign in' click_on 'Submit' Page Interaction and Scoping > has_css? has_css? has_css? returns a boolean value reporting whether a specific selector is present on the page. page.has_css?('nav[data-role="primary-navigation"] li', text: 'FAQ') > within within within will scope interaction to within a particular selector. Useful if you’re looking for content in a particular area. within('footer') { expect(page).to have_content('Copyright') } > has_content? has_content? has_content? returns a boolean value reporting whether specific content is present on the page. page.has_content?('Sign in') > find find find returns a single Capybara::Node::Element instance from the page. page.find('.todos li:first-child') > all all all returns an array of Capybara::Node::Element instances from the page. page.all('.todos li:nth-of_type(odd)') Capybara Cheatsheet Copyright © 2013 - thoughtbot, inc. 1 of 2

Upload: anwar

Post on 13-Sep-2015

7 views

Category:

Documents


0 download

DESCRIPTION

Capybara cheetsheet

TRANSCRIPT

  • Navigation>> visitvisitvisit navigates to a particular path. Pass a string or use one of Rails path helpers.

    visit '/blog'

    visit blogs_path

    >> click_onclick_onclick_on will click an anchor tag, button, or input with type submit. Pass a stringcontaining the anchor text.

    click_on 'Sign in'

    click_on 'Submit'

    Page Interaction and Scoping>> has_css?has_css?has_css? returns a boolean value reporting whether a specific selector is present onthe page.

    page.has_css?('nav[data-role="primary-navigation"] li', text: 'FAQ')

    >> withinwithinwithin will scope interaction to within a particular selector. Useful if youre looking forcontent in a particular area.

    within('footer') { expect(page).to have_content('Copyright') }

    >> has_content?has_content?has_content? returns a boolean value reporting whether specific content is presenton the page.

    page.has_content?('Sign in')

    >> findfindfind returns a single Capybara::Node::Element instance from the page.

    page.find('.todos li:first-child')

    >> allallall returns an array of Capybara::Node::Element instances from the page.

    page.all('.todos li:nth-of_type(odd)')

    Capybara Cheatsheet

    Copyright 2013 - thoughtbot, inc. 1 of 2

    www.princexml.comPrince - Non-commercial LicenseThis document was created with Prince, a great way of getting web content onto paper.

  • Page AssertionsNote: All page assertions can be nested within `within` any number of times.

    >> have_csshave_csshave_css asserts that a certain selector is present on the page. have_css acceptsCSS3 and is incredibly powerful.

    expect(page).to have_css('header')

    expect(page).to have_css('table#records + .pagination a[rel="next"]')

    >> have_contenthave_contenthave_content asserts that certain text is present on the page.

    expect(page).to have_content('What are you looking for?')

    Node Interactions>> clickclickclick triggers a click on a Capybara::Element. Works with Javascript drivers.

    find('article a.title').click

    >> triggertriggertrigger allows triggering of custom events. Works with Javascript drivers.

    find('input[name="post[title]"]').trigger('focus')

    >> visible?visible?visible? returns a boolean value reporting if the Capybara::Element is visible.Works with Javascript drivers.

    find('.navigation').visible?

    Form Interactions>> fill_infill_infill_in fills in fields for you. Pass the label text or the name of the input.

    fill_in 'Title', with: 'I love Rails!'

    fill_in 'post[title]', with: 'I love Rails!'

    >> checkcheckcheck checks a checkbox. Pass the label text.

    check 'I accept the terms of the site'

    check 'I am thirteen years of age or older'

    >> uncheckuncheckuncheck unchecks a checkbox. Pass the label text.

    uncheck 'Admin access?'

    >> selectselectselect selects an option from a select tag.

    select 'Moderate', from: 'Political Party'

    select 'MA', from: 'State'

    >> click_buttonclick_buttonclick_button will press a button or input[type='submit']

    click_button 'Create My Account'

    click_button 'Save Record'

    Debugging>> save_and_open_pagesave_and_open_pagesave_and_open_page will save the current page (typically to Rails.root/tmp)and attempt to open the HTML in the default web browser.

    Capybara Cheatsheet

    Copyright 2013 - thoughtbot, inc. 2 of 2

    Navigationvisitclick_on

    Page Interaction and Scopinghas_css?withinhas_content?findall

    Page Assertionshave_csshave_content

    Node Interactionsclicktriggervisible?

    Form Interactionsfill_incheckuncheckselectclick_button

    Debuggingsave_and_open_page