Created
June 7, 2010 01:35
-
-
Save zhengjia/428105 to your computer and use it in GitHub Desktop.
capybara cheat sheet
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=Navigating= | |
visit('/projects') | |
visit(post_comments_path(post)) | |
=Clicking links and buttons= | |
click_link('id-of-link') | |
click_link('Link Text') | |
click_button('Save') | |
click('Link Text') # Click either a link or a button | |
click('Button Value') | |
=Interacting with forms= | |
fill_in('First Name', :with => 'John') | |
fill_in('Password', :with => 'Seekrit') | |
fill_in('Description', :with => 'Really Long Text…') | |
choose('A Radio Button') | |
check('A Checkbox') | |
uncheck('A Checkbox') | |
attach_file('Image', '/path/to/image.jpg') | |
select('Option', :from => 'Select Box') | |
=scoping= | |
within("//li[@id='employee']") do | |
fill_in 'Name', :with => 'Jimmy' | |
end | |
within(:css, "li#employee") do | |
fill_in 'Name', :with => 'Jimmy' | |
end | |
within_fieldset('Employee') do | |
fill_in 'Name', :with => 'Jimmy' | |
end | |
within_table('Employee') do | |
fill_in 'Name', :with => 'Jimmy' | |
end | |
=Querying= | |
page.has_xpath?('//table/tr') | |
page.has_css?('table tr.foo') | |
page.has_content?('foo') | |
page.should have_xpath('//table/tr') | |
page.should have_css('table tr.foo') | |
page.should have_content('foo') | |
page.should have_no_content('foo') | |
find_field('First Name').value | |
find_link('Hello').visible? | |
find_button('Send').click | |
find('//table/tr').click | |
locate("//*[@id='overlay'").find("//h1").click | |
all('a').each { |a| a[:href] } | |
=Scripting= | |
result = page.evaluate_script('4 + 4'); | |
=Debugging= | |
save_and_open_page | |
=Asynchronous JavaScript= | |
click_link('foo') | |
click_link('bar') | |
page.should have_content('baz') | |
page.should_not have_xpath('//a') | |
page.should have_no_xpath('//a') | |
=XPath and CSS= | |
within(:css, 'ul li') { ... } | |
find(:css, 'ul li').text | |
locate(:css, 'input#name').value | |
Capybara.default_selector = :css | |
within('ul li') { ... } | |
find('ul li').text | |
locate('input#name').value |
👍 👍 👍
Hiii
I want to use xpath with select method in cucumber rails so how can i use xpath with select method?
How do you wait for page to load in webrat?
To match that select
with label 'Country' have an option with text 'France' selected
expect(page).to have_select('Country', selected: 'France')
👍
TY
Thanks a lot. Helpful
Amazing article!
Very helpful!
Is this up to date in July 2019?
👍
Useful thanks !
Could someone give a little bit more info about tab handling ? opening new tab, switching, closing please ?
Thanks a lot !
thanks!
thanks
mmmm capy
save_and_open_screenshot
https://devhints.io/capybara pretty much covers all of the available capybara actions
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To note, things like
have_css
, andhave_xpath
also have some optional arguments which help better querying. For instancehave_css(".widget", maximum: 2)