diff --git a/modules/axabanque/browser.py b/modules/axabanque/browser.py index ea0b0cd5..d86acb07 100644 --- a/modules/axabanque/browser.py +++ b/modules/axabanque/browser.py @@ -76,6 +76,10 @@ class AXABanque(Browser): def get_accounts_list(self): if not self.is_on_page(AccountsPage): self.location('/transactionnel/client/liste-comptes.html') + + if self.page.is_password_expired(): + raise BrowserIncorrectPassword() + return self.page.get_list() def get_account(self, id): @@ -92,6 +96,9 @@ class AXABanque(Browser): if not self.is_on_page(AccountsPage): account = self.get_account(account.id) + if self.page.is_password_expired(): + raise BrowserIncorrectPassword() + args = account._args args['javax.faces.ViewState'] = self.page.get_view_state() self.location('/webapp/axabanque/jsp/panorama.faces', urllib.urlencode(args)) diff --git a/modules/axabanque/pages.py b/modules/axabanque/pages.py index da80bf25..e5614351 100644 --- a/modules/axabanque/pages.py +++ b/modules/axabanque/pages.py @@ -33,6 +33,9 @@ class BasePage(_BasePage): def get_view_state(self): return self.document.xpath('//input[@name="javax.faces.ViewState"]')[0].attrib['value'] + def is_password_expired(self): + return len(self.document.xpath('//div[@id="popup_client_modifier_code_confidentiel"]')) + class UnavailablePage(BasePage): def on_loaded(self):