diff --git a/modules/societegenerale/sgpe/browser.py b/modules/societegenerale/sgpe/browser.py index 7836385a419b3e86375128b94f7a3631b2e2cf99..573b295e1c967dfe5ad0f27aefd33f118ff05b17 100644 --- a/modules/societegenerale/sgpe/browser.py +++ b/modules/societegenerale/sgpe/browser.py @@ -25,7 +25,7 @@ from weboob.browser.browsers import LoginBrowser, need_login, StatesMixin from weboob.browser.url import URL from weboob.browser.exceptions import ClientError -from weboob.exceptions import BrowserIncorrectPassword +from weboob.exceptions import BrowserIncorrectPassword, ActionNeeded from weboob.capabilities.base import find_object from weboob.capabilities.bank import ( AccountNotFound, RecipientNotFound, AddRecipientStep, AddRecipientBankError, @@ -35,7 +35,7 @@ from .pages import ( LoginPage, CardsPage, CardHistoryPage, IncorrectLoginPage, - ProfileProPage, ProfileEntPage, ChangePassPage, SubscriptionPage, + ProfileProPage, ProfileEntPage, ChangePassPage, SubscriptionPage, InscriptionPage, ErrorPage, ) from .json_pages import AccountsJsonPage, BalancesJsonPage, HistoryJsonPage, BankStatementPage @@ -59,6 +59,7 @@ class SGPEBrowser(LoginBrowser): '/gae/afficherInscriptionUtilisateur.html', '/gae/afficherChangementCodeSecretExpire.html', ChangePassPage) + inscription_page = URL('/icd-web/gax/gax-inscription.html', InscriptionPage) def check_logged_status(self): if not self.page or self.login.is_here(): @@ -82,6 +83,9 @@ def do_login(self): except ClientError: raise BrowserIncorrectPassword() + if self.inscription_page.is_here(): + raise ActionNeeded(self.page.get_error()) + # force page change if not self.accounts.is_here(): self.go_accounts() diff --git a/modules/societegenerale/sgpe/pages.py b/modules/societegenerale/sgpe/pages.py index 82f8b6d8970ce9fb74876a06f785fc9179ebacc5..5fc8d3276586ad97be4890f4e0d312c6d0410bfc 100644 --- a/modules/societegenerale/sgpe/pages.py +++ b/modules/societegenerale/sgpe/pages.py @@ -259,3 +259,9 @@ def on_load(self): if self.doc.xpath('//div[@class="ngo_mu_message" and contains(text(), "momentanément indisponible")]'): # Warning: it could occurs because of wrongpass, user have to change password raise BrowserUnavailable(CleanText('//div[@class="ngo_mu_message"]')(self.doc)) + + +class InscriptionPage(SGPEPage): + def get_error(self): + message = CleanText('//head/title')(self.doc) + return message