Skip to content

ExtractMethod/prickle

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
This branch is 107 commits ahead of despo:master.

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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>"

About

A simple DSL extending Capybara.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%