Lettuce steps for Web Testing with Selenium 2
The included matchers and syntax is inspired heavily by cucumber_watir.
Setting Up lettuce_webdriver
In your lettuce terrain.py file, add an include statement for lettuce to learn about the additional step definitions provided by lettuce_webdriver and a setup that creates the selenium browser desired:
from lettuce import before, world from selenium import webdriver import lettuce_webdriver.webdriver @before.all def setup_browser(): world.browser = webdriver.Firefox()
lettuce stories are written in the standard Cucumber style of gherkin. For example:
Scenario: Filling out the signup form Given I go to "http://foo.com/signup" When I fill in "Name" with "Foo Bar" And I fill in "Email" with "email@example.com" And I fill in "City" with "San Jose" And I fill in "State" with "CA" And I uncheck "Send me spam!" And I select "Male" from "Gender" And I press "Sign up" Then I should see "Thank you for signing up!"
The following lettuce step matchers are included in this package and can be used with Given/When/Then/And as desired.
# urls I visit "http://google.com/" I go to "http://google.com/" # links I click "Next page" I should see a link with the url "http://foobar.com/" I should see a link to "Google" with the url "http://google.com/" I should see a link that contains the text "Foobar" and the url "http://foobar.com/" # general I should see "Page Content" I see "Page Content" I should see "Page Content" within 4 seconds I should not see "Foobar" I should be at "http://foobar.com/" I should see an element with id of "http://bar.com/" I should see an element with id of "http://bar.com/" within 2 seconds I should not see an element with id of "http://bar.com/" The element with id of "cs_PageModeContainer" contains "Read" The element with id of "cs_BigDiv" does not contain "Write" # browser The browser's URL should be "http://bar.com/" The browser's URL should contain "foo.com" The browser's URL should not contain "bar.com" # forms I should see a form that goes to "http://bar.com/submit.html" I press "Submit" # checkboxes I check "I have a car" I uncheck "I have a bus" The "I have a car" checkbox should be checked The "I have a bus" checkbox should not be checked # select I select "Volvo" from "Car Choices" I select the following from "Car Choices": """ Volvo Saab """ The "Volvo" option from "Car Choices" should be selected The following options from "Car Choices" should be selected: """ Volvo Saab """ # radio buttons I choose "Foobar" The "Foobar" option should be chosen The "Bar" option should not be chosen # text entry fields (text, textarea, password) I fill in "Username" with "Smith"
lettuce_webdriver is maintained by Nick Pilon (@npilon on github and firstname.lastname@example.org). Bug fixes and feature patches may be submitted using github pull requests, and bug reports or feature requests as github issues.
lettuce_webdriver is fully compatible and recommended for use with BrowserStack (http://www.browserstack.com/), which provides hosted remote Selenium instaces for all major browsers.