class LoginPage(Page): ''' LoginPage ''' def __init__(self, browser, load=False): self._config = ConfigReader(self.__class__.__name__) url = self._config.get_page_locator('Url', 'url') + \ self._config.get_locator('url') Page.__init__(self, browser, url, load) def login(self, user, password): from mainpage import MainPage from homepage import HomePage box = TextBox(self._browser, self._config.get_locator('username')) box.set_text(user) box.set_locator(self._config.get_locator('password')) box.set_text(password) elem = Element(self._browser, self._config.get_locator('submit')) elem.click() page = HomePage(self._browser, False) if not page.is_logged_in(): msg = "Login failed" box.set_locator(self._config.get_locator('err_msg')) if (box.exists()): msg = box.get_text() assert msg == '' return MainPage(self._browser, False)
class RecentTransPage(Page): ''' View Recent Transaction ''' def __init__(self, browser, load = True): self._config = ConfigReader(self.__class__.__name__) page_url = self._config.get_page_locator('Url', 'url') + \ self._config.get_locator('url') Page.__init__(self, browser, page_url, load) def search_transaction(self, after_date, before_date): ''' Start searching transactions in the range from [before_date] to the [after_date] :Args: before_date - String, before date [format: mm/dd/yyyy] after_date - String, after date [format: mm/dd/yyyy] :Usage: page.search_transaction('01/04/1920','04/04/2011') ''' box = TextBox(self._browser, self._config.get_locator('after_date')) box.set_text(after_date) box.set_locator('before_date') box.set_text(before_date) elem = Element(self._browser, self._config.get_locator('submit_btn')) elem.click() return self def get_results_count(self): pass
class LoginPage(Page): """ LoginPage """ def __init__(self, browser, load=False): self._config = ConfigReader(self.__class__.__name__) url = self._config.get_page_locator("Url", "url") + self._config.get_locator("url") Page.__init__(self, browser, url, load) def login(self, user, password): from mainpage import MainPage from homepage import HomePage box = TextBox(self._browser, self._config.get_locator("username")) box.set_text(user) box.set_locator(self._config.get_locator("password")) box.set_text(password) elem = Element(self._browser, self._config.get_locator("submit")) elem.click() page = HomePage(self._browser, False) if not page.is_logged_in(): msg = "Login failed" box.set_locator(self._config.get_locator("err_msg")) if box.exists(): msg = box.get_text() assert msg == "" return MainPage(self._browser, False)
class SearchNewsPage(Page): ''' Search News Articles page ''' def __init__(self, browser, load=True): self._config = ConfigReader(self.__class__.__name__) page_url = self._config.get_page_locator('Url', 'url') + \ self._config.get_locator('url') Page.__init__(self, browser, page_url, load) def search_news_articles(self, search_query): ''' Search news articles according to given text :Args: search_query - text to find. :Usage: page.search_news_articles('weather') ''' box = TextBox(self._browser, self._config.get_locator('search_text')) box.set_text(search_query) elem = Element(self._browser, self._config.get_locator('search_btn')) elem.click() return self def count_search_resutls(self): box = TextBox(self._browser, self._config.get_locator('result_lbl')) if (box.get_text().find('not found') != -1): return 0 return 1
class MainPage(Page): ''' MainPage ''' def __init__(self, browser, load=True): self._config = ConfigReader(self.__class__.__name__) url = self._config.get_page_locator('Url', 'url') + \ self._config.get_locator('url') Page.__init__(self, browser, url, load) def logout(self): elem = Element(self._browser, self._config.get_locator('logout_link')) elem.click() page = HomePage(self._browser, False) assert page.is_logged_in() == False return page def open_recent_transactions_page(self): elem = Element(self._browser, self._config.get_locator('recent_trans_link')) elem.click() page = RecentTransPage(self._browser, False) return page def open_search_news_page(self): elem = Element(self._browser, self._config.get_locator('search_news_link')) elem.click() page = SearchNewsPage(self._browser, False) return page
class RecentTransPage(Page): ''' View Recent Transaction ''' def __init__(self, browser, load=True): self._config = ConfigReader(self.__class__.__name__) page_url = self._config.get_page_locator('Url', 'url') + \ self._config.get_locator('url') Page.__init__(self, browser, page_url, load) def search_transaction(self, after_date, before_date): ''' Start searching transactions in the range from [before_date] to the [after_date] :Args: before_date - String, before date [format: mm/dd/yyyy] after_date - String, after date [format: mm/dd/yyyy] :Usage: page.search_transaction('01/04/1920','04/04/2011') ''' box = TextBox(self._browser, self._config.get_locator('after_date')) box.set_text(after_date) box.set_locator('before_date') box.set_text(before_date) elem = Element(self._browser, self._config.get_locator('submit_btn')) elem.click() return self def get_results_count(self): pass
class HomePage(Page): ''' HomePage ''' def __init__(self, browser, load=True): self._config = ConfigReader("HomePage") page_url = self._config.get_page_locator('Url', 'url') + \ self._config.get_locator('url') Page.__init__(self, browser, page_url, load) def is_logged_in(self): elem = Element(self._browser, self._config.get_locator('login_link')) return not (elem.exists() and elem.is_visible()) def get_login_page(self): if not self.is_logged_in(): elem = Element(self._browser, self._config.get_locator('login_link')) elem.click() return LoginPage(self._browser) return self