From 9b355e9a098e94942953b1b813b7276d9af78dfa Mon Sep 17 00:00:00 2001 From: Quentin Defenouillere Date: Tue, 14 May 2019 19:20:49 +0200 Subject: [PATCH] s2e/bnpes] Handle unavailable history form Sometimes the history form to show more transactions is not available and the module crashes with FormNotFound() Closes: 16439@sibi --- modules/s2e/browser.py | 6 +++--- modules/s2e/pages.py | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/s2e/browser.py b/modules/s2e/browser.py index 4bb140d32d..bd168f37e8 100644 --- a/modules/s2e/browser.py +++ b/modules/s2e/browser.py @@ -146,9 +146,9 @@ def iter_history(self, account): self.page.go_multi(account._multi) self.history.go(slug=self.SLUG) # Get more transactions on each page - self.page.show_more("50") - for tr in self.page.iter_history(accid=account.id): - yield tr + if self.page.show_more("50"): + for tr in self.page.iter_history(accid=account.id): + yield tr # Go back to first page self.page.go_start() diff --git a/modules/s2e/pages.py b/modules/s2e/pages.py index 324e6a01cc..6eb0fda175 100644 --- a/modules/s2e/pages.py +++ b/modules/s2e/pages.py @@ -504,7 +504,10 @@ def get_history_form(self, idt, args={}): return form def show_more(self, nb): - form = self.get_form(self.XPATH_FORM) + try: + form = self.get_form(self.XPATH_FORM) + except FormNotFound: + return False for select in self.doc.xpath('//select'): if Attr('./option[@selected]', 'value')(select) == nb: return @@ -513,6 +516,7 @@ def show_more(self, nb): if 'javax.faces.source' not in form: form['javax.faces.source'] = idt form.submit() + return True def go_start(self): idt = Attr('//a[@title="debut" or @title="precedent"]', 'id', default=None)(self.doc) -- GitLab