Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: v0.1.0
Fetching contributors…

Cannot retrieve contributors at this time

154 lines (103 sloc) 2.918 kb

Prickle

Build Status Code Climate

Configuration

To install prickle execute

gem install prickle

Configure by updating the features/support/env.rb to include the following:

require 'prickle/capybara'    # require


World do
   include Capybara::DSL
   include Prickle::Capybara  # include  Prickle
end

For Capybara 2.0, make sure you are using prickle ≥ 0.1.0

Waiting for elements to become visible

To enable this feature you need to set the Prickle::Capybara.wait_time property.

Prickle::Capybara.wait_time = 5

If you only want to extend the wait time for a particular feature, then you need to reset the wait time using Prickle::Capybara = nil after your call..

Prickle::Capybara.wait_time = 5
element(:href => "http://google.com").click
Prickle::Capybara.wait_time = nil             # reset wait time

Usage

Find elements by any html tag(s)

element(:href => "http://google.com")
element(:name => "blue")
element(:id => "key")
element(:class => "key", :id => "button")

You can also find elements by a value contained in the identifier

element(:name.like => "blue") # will match <button name="blue_12345">

Find elements by type and html tag(s)

element(:link, :href => "http://google.com")    # you can also use link and paragraph (instead of a and p)
element(:input, :name => "blue")

Apply a search, a click or a text matcher

element(:name => "flower").exists?
element(:name => "flower").click
element(:name => "flower").contains_text? "Roses"
element(:name => "flower").has_text? "Anemone"  # exact match

Popup

Selenium

popup.confirm
popup.dismiss
popup.message

popup.contains_message? "<text>"

Webkit

popup.confirm {
  #block that triggers confirmation dialog
}

popup.dismiss {
  #block that triggers confirmation dialog
}

popup.accept {
  #block that triggers alert
}

Verifying popup messages

alert = popup.accept {
  #block that triggers alert
}

alert.contains_message? "<text>"

Alternative syntax

Find

find_by_name "green"
find_button_by_name "green" #find_<element_tag>_by_name "<name>"

Click

click_by_name "blue"
click_input_by_name "blue" #click_<element_tag>_by_name "<name>"

Match text

div_contains_text? "text" #<element_tag>_contains_text? "text"

Capturing screenshots

Configure the directory where you want the screenshots to be saved

Prickle::Capybara.image_dir = File.dirname(__FILE__) + "/screenshots/"
capture_screen
capture_screen "<file>"
Jump to Line
Something went wrong with that request. Please try again.