Browser Test Case
Canonical Name: testbase.browser.BrowserTestCase
The BrowserTestCase
works together with a PageObject
to help test a single page of the site. Create a new Browser
Test Case like this:
class TestGreatPage(BrowserTestCase):
_pageClass = GreatPageObject
def setUp(self):
self._urlFields['url_argument'] = 'someValue'
super().setUp()
In this example the class-level _pageClass
attribute is defined to describe the page under test. This attribute
names the PageObject
class which describes the page. In this example the page object is describing a URL which
requires parameters. The values for these parameters are specified in the _urlFields
property during the setUp()
method. Note that the superclass setUp is called after setting up the URL fields. This is because it is
BrowserTestCase.setUp()
which directs the browser to the page under test.
Class Properties
The BaseTestCase
class uses a few class-level attributes to control it's behaviour.
_pageClass
The class of the PageObject representing a page under test.
_windowWidth
_windowHeight
The dimensions of the browser window. Use this to test responsive designs at different browser sizes.
_loginPage
The class of the PageObject for the site's login page. If this is given then the test suite will use this page to log in a randomly created user before any tests are run.
A simple login page, SimpleLoginPage,
is provided which demonstrates the interface that must be implemented. Derive from SimpleLoginPage
to add more functionality or override the default implementation. If the interface prescribed by
SimpleLoginPage
is not suitable for the project then override BrowserTestCase.logInAs
to perform as desired.
Properties
_urlFields
A dictionary of variable parameters to use when browsing to the page described by _pageClass
. These will be
passed to the django reverse
function as kwargs.
browser
The selenium webdriver object for this page. Use this when creating a new page object.
Methods
browseToPage(cls, **urlFields)
Direct the browser to the page described by PageObject class, cls, and return a new instance of the page object. URL parameters required for the page object are provided as keyword arguments.
browseToPageUnderTest()
Reset the browser to the page under test as specified by _pageClass
and _urlFields
.
logInAs(user, * password=None)
Logs in the specified user by browsing to the login page described by _loginPage
. This method enters the user's
name and password by calling enter_username(username)
and enter_password(password)
on the login page object
then submits the login by calling submit_login()
.
This method is called automatically during suiteSetUp()
if a _loginPage
is provided. It does not normally
need to be called manually.
logOut()
There is no default implementation of logOut()
. Override this method on a derived test case to enable logout
functionality if needed.