query for one or more web elements using either class name, id, css_selector or xpath

assert on the number of occurrences / value of certain elements.

tear down the webdriver after each test case

It suffers from the typical web development problem of coupling the test case with the HTML plumbing of
the page its testing rather than the functionality its meant to exercise. The concept of PageObjects
reduces this coupling and allow for test authors to separate the layout of the page under test and the
functional behavior being tested. This separation also results in more maintainable test code
(i.e. if an element name changes - all tests don’t have to be updated, just the PageObject).

Lets take the above test case for a spin with holmium. Take note of the following:

The initialization and reset of the webdriver is delegated to the TestCase base class
(alternatively the class could subclass unittest.TestCase and be run with the holmium nose plugin).

the page elements are accessed in the test only via Element & ElementMap.

0.6.1 2013-12-23

0.6 2013-12-14

Lazy driver initialization. The webdriver is created
when the test first accesses it.

Support for using multiple browsers (drivers) in test cases. The original
self.driver is still available along with a self.drivers list which lazily
initializes new drivers as they are accessed via index. drivers[0] == driver.

New environment variable / nose option to force browser(s) to be shutdown and
restarted between tests. (it is disabled by default, but cookies are still
always cleared between tests)

0.5.2 2013-12-09

0.5.1 2013-12-01

Re-added python 2.6 support

0.5.0 2013-12-01

Python 3.3 now supported and tested.

0.4.2 2013-12-01

New parameter only_if (callable that accepts the webelement that was
found) accepted by Element, Elements, ElementMap that allows for waiting
for an element to become valid according to the response of only_if. The callable will be checked uptil the timeout parameter set
on the Element.

0.3.4 2013-11-21

0.3.3 2013-10-29

Improved back reference access in Config object by allowing variable references
without requiring a prefix of default or the environment name. The resolution
order is current environment and then default.

For example, the following config will resolve login_url as http://mysite.com/login
and profile_url as http://mysite.com/profile/prod_user respectively, when holmium.environment
is set to production

Copyright (c) 2014 Ali-Akber Saifee
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.