diff --git a/modules/banquepopulaire/browser.py b/modules/banquepopulaire/browser.py index d05e57659d70077a54ca0a4a70ddedf25cfd6be1..215d5c51c98e49293b7f7c66a64f229a6c8e748d 100644 --- a/modules/banquepopulaire/browser.py +++ b/modules/banquepopulaire/browser.py @@ -50,7 +50,7 @@ NewLoginPage, JsFilePage, AuthorizePage, LoginTokensPage, VkImagePage, AuthenticationMethodPage, AuthenticationStepPage, CaissedepargneVirtKeyboard, AccountsNextPage, GenericAccountsPage, InfoTokensPage, NatixisUnavailablePage, - RedirectErrorPage, + RedirectErrorPage, BPCEPage, ) from .document_pages import BasicTokenPage, SubscriberPage, SubscriptionsPage, DocumentsPage from .linebourse_browser import LinebourseAPIBrowser @@ -115,6 +115,7 @@ def wrapper(browser, *args, **kwargs): class BanquePopulaire(LoginBrowser): + first_login_page = URL(r'/$') login_page = URL(r'https://[^/]+/auth/UI/Login.*', LoginPage) new_login = URL(r'https://[^/]+/.*se-connecter/sso', NewLoginPage) js_file = URL(r'https://[^/]+/.*se-connecter/main-.*.js$', JsFilePage) @@ -206,6 +207,7 @@ class BanquePopulaire(LoginBrowser): ) redirect_page = URL(r'https://[^/]+/portailinternet/_layouts/Ibp.Cyi.Layouts/RedirectSegment.aspx.*', RedirectPage) + bpce_page = URL(r'https://[^/]+/cyber/ibp/ate/portal/internet89C3Portal.jsp', BPCEPage) redirect_error_page = URL( r'https://[^/]+/portailinternet/?$', @@ -218,6 +220,7 @@ class BanquePopulaire(LoginBrowser): r'https://[^/]+/portailinternet/Pages/[dD]efault.aspx', r'https://[^/]+/portailinternet/Transactionnel/Pages/CyberIntegrationPage.aspx', r'https://[^/]+/cyber/internet/ShowPortal.do\?token=.*', + r'https://[^/]+/cyber/internet/ShowPortal.do\?taskInfoOID=.*', HomePage ) @@ -326,7 +329,7 @@ def follow_back_button_if_any(self, params=None, actions=None): @no_need_login def do_login(self): try: - self.location(self.BASEURL) + self.first_login_page.go() except (ClientError, HTTPNotFound) as e: if e.response.status_code in (403, 404): # Sometimes the website makes some redirections that leads diff --git a/modules/banquepopulaire/pages.py b/modules/banquepopulaire/pages.py index ed75a2ccd51e731b199d5c7676d2ae4d74722493..76297eda8209d9db066da934a5f7c6aa33e0480c 100644 --- a/modules/banquepopulaire/pages.py +++ b/modules/banquepopulaire/pages.py @@ -203,6 +203,10 @@ def build_doc(self, data, *args, **kwargs): return super(MyHTMLPage, self).build_doc(data, *args, **kwargs) +class BPCEPage(LoggedPage, MyHTMLPage): + pass + + class RedirectPage(LoggedPage, MyHTMLPage): ENCODING = None