Hi,
I am trying to setup framework using page object pattern approach
with Webdriver/Python. I currently have a suite of tests using a flat
model approach.
I have been looking at the examples used here:
https://github.com/davehunt/qmo-tests
If i have a setup with
*page.py
*base_page.py
*home_page.py
*test.py
How/Where do i initialize Webdriver - on page.py?
I get an error when i run test.py:
self = <home_page.HomePage object at 0x102e71d90>
def go_to_home_page(self):
> driver = self.driver
E AttributeError: 'HomePage' object has no attribute 'driver'
here is test.py:
#!/usr/bin/python
import home_page
class TestSignIn:
def test_user_can_sign_in(self):
home_pg = home_page.HomePage()
home_pg.go_to_home_page()
*************************************************
home_page.py:
#!/usr/bin/env python
from
selenium.webdriver.common.by import By
import base_page
class HomePage(base_page.BasePage):
_page_title = ""
_sign_in_locator = (By.LINK_TEXT, "Sign In")
def go_to_home_page(self):
driver = self.driver
self.driver.get("%s/" % self.base_url)
'''self.is_the_current_page'''
def click_sign_in(self):
self.selenium.find_element(*self._sign_in_locator).click()
*************************************************************************
page.py:
#!/usr/bin/python
from selenium import webdriver
import time
import base64
class Page(object):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "
http://xxx.com/"
self.verificationErrors = []
******************************************************************
base-page.py
#!/usr/bin/python
from
selenium.webdriver.common.by import By
from page import Page
class BasePage(Page):
_page_title_locator = (By.CSS_SELECTOR, "#page-title")
@property
def page_title(self):
return
self.selenium.find_element(*self._page_title_locator).text
~