diff --git a/modules/ing/browser.py b/modules/ing/browser.py index e65b0406..6c6a35aa 100644 --- a/modules/ing/browser.py +++ b/modules/ing/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import BaseBrowser +from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from .pages import AccountsList, LoginPage, LoginPage2, \ AccountHistory @@ -60,6 +60,8 @@ class Ing(BaseBrowser): self.page.prelogin(self.username, self.birthday) self.page.login(self.password) + if self.page.error(): + raise BrowserIncorrectPassword() def get_accounts_list(self): if not self.is_on_page(AccountsList): diff --git a/modules/ing/pages/login.py b/modules/ing/pages/login.py index 932cb654..df59cba9 100644 --- a/modules/ing/pages/login.py +++ b/modules/ing/pages/login.py @@ -22,7 +22,7 @@ import re from weboob.tools.mech import ClientForm from logging import error -from weboob.tools.browser import BasePage +from weboob.tools.browser import BasePage, BrowserIncorrectPassword from weboob.tools.captcha.virtkeyboard import VirtKeyboard, VirtKeyboardError import tempfile @@ -46,9 +46,10 @@ class INGVirtKeyboard(VirtKeyboard): def __init__(self, basepage): divkeyboard = basepage.document.find("//div[@id='clavierdisplayLogin']") - img = divkeyboard.xpath("img")[1] - if img is None: - return False + try: + img = divkeyboard.xpath("img")[1] + except: + raise BrowserIncorrectPassword() url = img.attrib.get("src") coords = {} coords["11"] = (5, 5, 33, 33) @@ -101,6 +102,10 @@ class LoginPage(BasePage): self.browser['zone1Form:radioSaveClientNumber'] = False self.browser.submit(nologin=True) + def error(self): + error = self.document.find('//span[@class="error"]') + return error is not None + class LoginPage2(BasePage): def on_loaded(self):