From a360f00323af6640c8472d53912b37187111657e Mon Sep 17 00:00:00 2001 From: Christophe Francois Date: Wed, 17 Mar 2021 11:21:15 +0100 Subject: [PATCH] [aviva] Handle empty investment_detail page Sometimes the investment detail page is empty, with no error displayed. --- modules/aviva/browser.py | 12 ++++++------ modules/aviva/pages/detail_pages.py | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/aviva/browser.py b/modules/aviva/browser.py index 5a1bf4a4a2..5906d57c26 100644 --- a/modules/aviva/browser.py +++ b/modules/aviva/browser.py @@ -22,7 +22,7 @@ from weboob.browser import LoginBrowser, need_login from weboob.browser.url import BrowserParamURL -from weboob.capabilities.base import empty, NotAvailable +from weboob.capabilities.base import empty from weboob.capabilities.bank import Account from weboob.exceptions import ( BrowserIncorrectPassword, BrowserPasswordExpired, @@ -116,11 +116,11 @@ def iter_investment(self, account): if not empty(inv.code): # Need to go first on InvestDetailPage... self.invest_detail.go(isin=inv.code) - # ...to then request the InvestPerformancePage tab - self.invest_performance.go() - self.page.fill_investment(obj=inv) - else: - inv.unitprice = inv.diff_ratio = inv.description = NotAvailable + # Sometimes the page loads but there is no info + if not self.page.is_empty(): + # ...to then request the InvestPerformancePage tab + self.invest_performance.go() + self.page.fill_investment(obj=inv) yield inv @need_login diff --git a/modules/aviva/pages/detail_pages.py b/modules/aviva/pages/detail_pages.py index f69c6c8535..b074967304 100644 --- a/modules/aviva/pages/detail_pages.py +++ b/modules/aviva/pages/detail_pages.py @@ -271,7 +271,8 @@ def on_load(self): class InvestDetailPage(LoggedPage, HTMLPage): - pass + def is_empty(self): + return not self.doc.xpath('//table') class InvestPerformancePage(LoggedPage, HTMLPage): -- GitLab