Metadata-Version: 1.1
Name: pytest-webdriver
Version: 1.0.1
Summary: Selenium webdriver fixture for py.test
Home-page: https://github.com/manahl/pytest-plugins
Author: Edward Easton
Author-email: eeaston@gmail.com
License: MIT license
Description: Pytest Webdriver Fixture
        ========================
        
        This fixture provides a configured webdriver for Selenium browser tests,
        that takes screenshots for you on test failures.
        
        Installation
        ------------
        
        Install using your favourite package installer:
        
        .. code:: bash
        
                pip install pytest-webdriver
                # or
                easy_install pytest-webdriver
        
        Enable the fixture explicitly in your tests or conftest.py (not required
        when using setuptools entry points):
        
        .. code:: python
        
                pytest_plugins = ['pytest_webdriver']
        
        Quickstart
        ----------
        
        This fixture connects to a remote selenium webdriver and returns the
        browser handle. It is scoped on a per-function level so you get one
        browser window per test.
        
        To use this fixture, follow the following steps.
        
        1. Nominate a browser host, and start up the webdriver executable on
           that host.
        2. Download the latest zip file from here:
           https://sites.google.com/a/chromium.org/chromedriver/downloads
        3. Unpack onto the target host, and run the unpacked chromedriver binary
           executable.
        4. Set the environment variable ``SELENIUM_HOST`` to the IP address or
           hostname of the browser host. This defaults to the local hostname.
        5. Set the environment variable ``SELENIUM_PORT`` to the port number of
           the webdriver server. The default port number is 4444.
        6. Set the environment variable ``SELENIUM_BROWSER`` to the browser
           type. Defaults to ``chrome``.
        7. Use the fixture as a test argument:
        
        .. code:: python
        
                   def test_mywebpage(webdriver):
                       webdriver.get('http://www.google.com')
        
        ``SELENIUM_URI`` setting
        ------------------------
        
        You can also specify the selenium server address using a URI format
        using the SELENIUM\_URL environment variable::
        
        .. code:: bash
        
                $ export SELENIUM_URI=http://localhost:4444/wd/hub
        
        This is needed when dealing with selenium server and not chrome driver
        (see
        https://groups.google.com/forum/?fromgroups#!topic/selenium-users/xodZDJxt81o).
        If SELENIUM\_URI is not defined SELENIUM\_HOST & SELENIUM\_PORT will be
        used.
        
        Automatic screenshots
        ---------------------
        
        When one of your browser tests fail, this plugin will take a screenshot
        for you and save it in the current working directory. The name will
        match the logical path to the test function that failed, like:
        
        ::
        
            test_login_page__LoginPageTest__test_unicode.png
        
        ``pytest-webdriver`` and `PageObjects <https://page-objects.readthedocs.org/en/latest/>`__
        ------------------------------------------------------------------------------------------
        
        If there is a pyramid\_server fixture from the also running in the
        current test, it will detect this and set the ``root_uri`` attribute on
        the webdriver instance:
        
        .. code:: python
        
                def test_my_pyramid_app(webdriver, pyramid_server):
                    assert webdriver.root_uri == pyramid_server.uri
        
        Why is this needed, you may ask? It can be used by the ``PageObjects``
        library to automatically set the base URL to your web app. This saves on
        a lot of string concatenation. For example:
        
        .. code:: python
        
                from page_objects import PageObject, PageElement
                
                class LoginPage(PageObject):
                    username = PageElement(id_='username')
                    password = PageElement(name='password')
                    login = PageElement(css='input[type="submit"]')
        
                def test_login_page(webdriver, pyramid_server):
                    page = LoginPage(webdriver)
                    page.login.click()
                    page.get('/foo/bar')
                    assert webdriver.getCurrentUrl() == pyramid_server.uri + '/foo/bar'
        
        
        Changelog
        ---------
        
        1.0.1 (2015-12-23)
        ~~~~~~~~~~~~~~~~~~
        
        -  Packaging bugfix
        
        1.0.0 (2015-12-21)
        ~~~~~~~~~~~~~~~~~~
        
        -  Initial public release
        
        
Platform: unix
Platform: linux
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
