diff --git a/weboob/backends/cragr/pages/accounts_list.py b/weboob/backends/cragr/pages/accounts_list.py index 99fca92f29aba13011a518155c4e177c6031bc4c..b789a46155035db1b2b46adf5340afcdfc96c884 100644 --- a/weboob/backends/cragr/pages/accounts_list.py +++ b/weboob/backends/cragr/pages/accounts_list.py @@ -20,9 +20,6 @@ from .base import CragrBasePage class AccountsList(CragrBasePage): - def on_loaded(self): - pass - def get_list(self): l = [] diff --git a/weboob/backends/cragr/pages/base.py b/weboob/backends/cragr/pages/base.py index ee3248bc62a02ac74b05d93e149a941991c32a0b..55a441a079d65365efd2c9a383941d96ad036b32 100644 --- a/weboob/backends/cragr/pages/base.py +++ b/weboob/backends/cragr/pages/base.py @@ -17,8 +17,23 @@ from weboob.tools.browser import BasePage +from weboob.tools.browser import BrowserUnavailable class CragrBasePage(BasePage): + def on_loaded(self): + # Check for an error + for div in self.document.getiterator('div'): + if div.attrib.get('class', '') == 'dv' and div.getchildren()[0].tag in ('img') and div.getchildren()[0].attrib.get('alt', '') == 'Attention': + # Try to find a detailed error message + if div.getchildren()[1].tag == 'span': + raise BrowserUnavailable(div.find('span').find('b').text) + elif div.getchildren()[1].tag == 'b': + # I haven't encountered this variation in the wild, + # but I wouldn't be surprised if it existed + # given the similar differences between regions. + raise BrowserUnavailable(div.find('b').find('span').text) + raise BrowserUnavailable() + def is_logged(self): for form in self.document.getiterator('form'): return False diff --git a/weboob/backends/cragr/pages/login.py b/weboob/backends/cragr/pages/login.py index 9a7e1db6a68bde9ca778f03c9e2c211876f4a17d..1a6e88621d4d68c94ff73995b0e91ca8398162c1 100644 --- a/weboob/backends/cragr/pages/login.py +++ b/weboob/backends/cragr/pages/login.py @@ -26,9 +26,6 @@ class LoginPage(CragrBasePage): - def on_loaded(self): - pass - def login(self, login, password): self.browser.select_form(nr=0) try: