def hit_login_button(self): """ 1. Click on Log In button 2. Wait until URL changes 3. Returns OverviewPageModel object on success 4. Return TimeOut exception on failure :return: """ element = Element(self.driver, self.explicit_wait_time, BasePageLocator.CUSTOMER_LOGIN_BUTTON) current_url = self.url() element.click_on() WebDriverWait(self.driver, self.explicit_wait_time).until( EC.url_changes(current_url)) if self.url( ) == self.config.base_url + AccountsOverviewPageContent.URL: from page_object_models.accounts_overview_page_model import AccountsOverviewPageModel return AccountsOverviewPageModel(config=self.config, driver=self.driver, implicit_wait_time=5, explicit_wait_time=10) if self.url() == self.config.base_url + LoginPageContent.URL: from page_object_models.login_page_model import LoginPageModel return LoginPageModel(config=self.config, driver=self.driver, implicit_wait_time=5, explicit_wait_time=10) raise Exception("Unknown URL: {} > Flow is not implemented".format( self.driver.current_url))
def hit_log_out_button(self): ''' 1. Click on "Log Out" 2. Wait until URL changes 3. Returns HomePageModel on success 4. Return TimeoutException on failure An expectation for checking the current url. url is the expected url, which must not be an exact match returns True if the url is different, false otherwise. Source: https://seleniumhq.github.io/selenium/docs/api/py/_modules/selenium/webdriver/support/expected_conditions.html#url_changes :return: ''' current_url = self.driver.current_url element = Element(self.driver, self.explicit_wait_time, AccountServicesMenuLocator.LOG_OUT) element.click_on() WebDriverWait(self.driver, self.explicit_wait_time).until( EC.url_changes(current_url)) from page_object_models.home_page_model import HomePageModel return HomePageModel(config=self.config, driver=self.driver, implicit_wait_time=5, explicit_wait_time=10)
def hit_clean_button(self): ''' Hit Clean button :return: ''' element = Element(self.driver, self.explicit_wait_time, AdminPageLocator.CLEAN_BUTTON) element.click_on() return None
def open_new_account(self): ''' Click on "Open New Account" :return: ''' element = Element(self.driver, self.explicit_wait_time, AccountServicesMenuLocator.OPEN_NEW_ACCOUNT) element.click_on() return None
def request_loan(self): ''' Click on "Request Loan" :return: ''' element = Element(self.driver, self.explicit_wait_time, AccountServicesMenuLocator.REQUEST_LOAN) element.click_on() return None
def update_contact_info(self): ''' Click on "Update Contact Info" :return: ''' element = Element(self.driver, self.explicit_wait_time, AccountServicesMenuLocator.UPDATE_CONTACT_INFO) element.click_on() return None
def find_transactions(self): ''' Click on "Find Transactions" :return: ''' element = Element(self.driver, self.explicit_wait_time, AccountServicesMenuLocator.FIND_TRANSACTIONS) element.click_on() return None
def bill_pay(self): ''' Click on "Bill Pay" :return: ''' element = Element(self.driver, self.explicit_wait_time, AccountServicesMenuLocator.BILL_PAY) element.click_on() return None
def transfer_funds(self): ''' Click on "Transfer Funds" :return: ''' element = Element(self.driver, self.explicit_wait_time, AccountServicesMenuLocator.TRANSFER_FUNDS) element.click_on() return None
def accounts_overview(self): ''' Click on "Account Overview" :return: ''' element = Element(self.driver, self.explicit_wait_time, AccountServicesMenuLocator.ACCOUNTS_OVERVIEW) element.click_on() return None
def hit_initialize_button(self): ''' Hit Initialize button :return: ''' element = Element(self.driver, self.explicit_wait_time, AdminPageLocator.INITIALIZE_BUTTON) element.click_on() return None
def click_send_btn(self): """ Click on "FIND MY LOGIN INFO" button :return: """ element = Element(self.driver, self.explicit_wait_time, ContactPageLocator.SEND_BUTTON) element.click_on() return None
def hit_register_btn(self): ''' Click on register button :return: ''' element = Element(self.driver, self.explicit_wait_time, RegisterPageLocator.REGISTER_BUTTON) element.click_on() return RegisterPageModel(config=self._config, driver=self.driver, implicit_wait_time=5, explicit_wait_time=10)
def hit_send_payment_button(self): """ Click on "Send Payment" button Raise NoSuchElementException on failure :param: :return: """ element = Element(driver=self.driver, explicit_wait_time=self.explicit_wait_time, locator=BillPayPageLocator.SEND_PAYMENT_BUTTON) element.click_on() return None
def hit_find_info_btn(self): ''' Click on "FIND MY LOGIN INFO" button :return: ''' element = Element(self.driver, self.explicit_wait_time, ForgotLoginInfoPageLocator.FIND_MY_LOGIN_INFO_BUTTON) element.click_on() return ForgotLoginInfoPageModel(config=self._config, driver=self.driver, implicit_wait_time=5, explicit_wait_time=5)
def hit_bill_pay(self): """ Press on "Bill Pay" menu item Returns "Bill Payment Service" page object on success :return: """ current_url = self.driver.current_url element = Element(self.driver, self.explicit_wait_time, BasePageLocator.BILL_PAY) element.click_on() WebDriverWait(self.driver, self.explicit_wait_time).until( EC.url_changes(current_url)) from page_object_models.bill_pay_page_model import BillPayPageModel return BillPayPageModel(config=self.config, driver=self.driver, implicit_wait_time=self.implicit_wait_time, explicit_wait_time=10)
def hit_accounts_overview(self): """ Press on "Accounts Overview" menu item Returns "Accounts Overview" page object on success :return: """ current_url = self.driver.current_url element = Element(self.driver, self.explicit_wait_time, BasePageLocator.ACCOUNTS_OVERVIEW) element.click_on() WebDriverWait(self.driver, self.explicit_wait_time).until( EC.url_changes(current_url)) from page_object_models.accounts_overview_page_model import AccountsOverviewPageModel return AccountsOverviewPageModel( config=self.config, driver=self.driver, implicit_wait_time=self.implicit_wait_time, explicit_wait_time=10)