From cf31803eea481ec6b27cbaa71160fc868abece22 Mon Sep 17 00:00:00 2001 From: Florent Viard Date: Fri, 29 Jan 2021 20:50:12 +0100 Subject: [PATCH] [bp] Detect and raise browser unavailable when service is unavailable The banque postale website often has temporary unavailabilities of pages. When it happens, instead of being redirected to a specific url, the content of the page is simply rewritten with an unavailability message. Closes: 186382@sibi 155183@sibi 145247@sibi --- modules/bp/pages/base.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/bp/pages/base.py b/modules/bp/pages/base.py index 3007ab0c76..c6b88c2416 100644 --- a/modules/bp/pages/base.py +++ b/modules/bp/pages/base.py @@ -19,11 +19,19 @@ # flake8: compatible +from weboob.browser.filters.standard import CleanText from weboob.browser.pages import HTMLPage +from weboob.exceptions import BrowserUnavailable class MyHTMLPage(HTMLPage): def on_load(self): + unavail_msg = CleanText( + '//main/h1[contains(text(), "Le service est momentanément indisponible.")]' + )(self.doc) + if unavail_msg: + raise BrowserUnavailable(unavail_msg) + deconnexion = self.doc.xpath('//iframe[contains(@id, "deconnexion")] | //p[@class="txt" and contains(text(), "Session expir")]') if deconnexion: self.browser.do_login() -- GitLab