diff --git a/modules/alloresto/browser.py b/modules/alloresto/browser.py
index 161a6a63..8d714bd3 100644
--- a/modules/alloresto/browser.py
+++ b/modules/alloresto/browser.py
@@ -19,7 +19,7 @@
from weboob.tools.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.browser import BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage
diff --git a/modules/banqueaccord/browser.py b/modules/banqueaccord/browser.py
index 15891792..e51b406c 100644
--- a/modules/banqueaccord/browser.py
+++ b/modules/banqueaccord/browser.py
@@ -19,7 +19,7 @@
from weboob.tools.browser2 import LoginBrowser, need_login, URL
-from weboob.tools.browser import BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from .pages import LoginPage, IndexPage, AccountsPage, OperationsPage
diff --git a/modules/carrefourbanque/browser.py b/modules/carrefourbanque/browser.py
index 6b9eb91a..2f737e9e 100644
--- a/modules/carrefourbanque/browser.py
+++ b/modules/carrefourbanque/browser.py
@@ -19,7 +19,7 @@
from weboob.tools.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.browser import BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from .pages import LoginPage, HomePage, TransactionsPage
diff --git a/modules/cmb/backend.py b/modules/cmb/backend.py
index 591c110f..ce0d534e 100644
--- a/modules/cmb/backend.py
+++ b/modules/cmb/backend.py
@@ -22,7 +22,7 @@ from weboob.capabilities.bank import Account, Transaction
from weboob.tools.backend import BaseBackend, BackendConfig
from weboob.tools.value import ValueBackendPassword
from weboob.capabilities.base import NotAvailable
-from weboob.tools.browser import BrowserIncorrectPassword, BrokenPageError
+from weboob.tools.exceptions import BrowserIncorrectPassword, ParseError
from weboob.tools.browser2 import BaseBrowser
from re import match, compile, sub
@@ -124,9 +124,9 @@ class CmbBackend(BaseBackend, ICapBank):
tree = etree.parse(StringIO(data), parser)
table = tree.xpath('/html/body/table')
if len(table) == 0:
- raise BrokenPageError()
+ raise ParseError()
else:
- raise BrokenPageError()
+ raise ParseError()
for tr in tree.xpath('/html/body//table[contains(@class, "Tb")]/tr'):
if tr.get('class', None) not in ('LnTit', 'LnTot', 'LnMnTiers', None):
@@ -196,9 +196,9 @@ class CmbBackend(BaseBackend, ICapBank):
tree = etree.parse(StringIO(data), parser)
tables = tree.xpath('/html/body/table')
if len(tables) == 0:
- raise BrokenPageError()
+ raise ParseError()
else:
- raise BrokenPageError()
+ raise ParseError()
i = 0
diff --git a/modules/freemobile/browser.py b/modules/freemobile/browser.py
index 3198916d..aae84afc 100644
--- a/modules/freemobile/browser.py
+++ b/modules/freemobile/browser.py
@@ -18,7 +18,7 @@
# along with weboob. If not, see .
from weboob.tools.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.browser import BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from .pages import HomePage, LoginPage, HistoryPage, DetailsPage
__all__ = ['Freemobile']
diff --git a/modules/groupamaes/browser.py b/modules/groupamaes/browser.py
index ddfc2039..45b8cdf2 100644
--- a/modules/groupamaes/browser.py
+++ b/modules/groupamaes/browser.py
@@ -19,7 +19,7 @@
from weboob.tools.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.browser import BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from .pages import LoginPage, LoginErrorPage, AvoirPage, OperationsTraiteesPage, OperationsFuturesPage
diff --git a/modules/hsbc/browser.py b/modules/hsbc/browser.py
index c7a325aa..c8443839 100644
--- a/modules/hsbc/browser.py
+++ b/modules/hsbc/browser.py
@@ -22,7 +22,7 @@ import ssl
from datetime import timedelta
from weboob.tools.date import LinearDateGuesser
-from weboob.tools.browser import BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from weboob.tools.browser2 import LoginBrowser, URL, need_login
from .pages import AccountsPage, CBOperationPage, CPTOperationPage, LoginPage
diff --git a/modules/hsbc/pages.py b/modules/hsbc/pages.py
index 7f79eff3..09e437b9 100644
--- a/modules/hsbc/pages.py
+++ b/modules/hsbc/pages.py
@@ -24,7 +24,7 @@ from weboob.capabilities import NotAvailable
from weboob.capabilities.bank import Account
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
-from weboob.tools.browser import BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from weboob.tools.browser2.page import HTMLPage, method, ListElement, ItemElement, SkipItem, LoggedPage, pagination
from weboob.tools.browser2.filters import Filter, Env, CleanText, CleanDecimal, Link, Field, DateGuesser, TableCell
diff --git a/modules/ing/browser.py b/modules/ing/browser.py
index 345f468b..614bd7b1 100644
--- a/modules/ing/browser.py
+++ b/modules/ing/browser.py
@@ -19,7 +19,7 @@
import hashlib
from weboob.tools.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.browser import BrowserIncorrectPassword, BrokenPageError
+from weboob.tools.exceptions import BrowserIncorrectPassword, ParseError
from weboob.capabilities.bank import Account, TransferError
from .pages import AccountsList, LoginPage, TitrePage, TitreHistory,\
@@ -162,7 +162,7 @@ class IngBrowser(LoginBrowser):
self.valtransferpage.go()
recap = self.page.recap()
if len(list(recap)) == 0:
- raise BrokenPageError('Unable to find confirmation')
+ raise ParseError('Unable to find confirmation')
return self.page.recap()
else:
raise TransferError('Recipient not found')
diff --git a/modules/ing/pages/login.py b/modules/ing/pages/login.py
index afb65bec..76a5d69a 100644
--- a/modules/ing/pages/login.py
+++ b/modules/ing/pages/login.py
@@ -19,7 +19,7 @@
from StringIO import StringIO
-from weboob.tools.browser import BasePage, BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from weboob.tools.captcha.virtkeyboard import VirtKeyboard
from weboob.tools.browser2.page import HTMLPage
@@ -120,5 +120,5 @@ class LoginPage(HTMLPage):
form.submit()
-class StopPage(BasePage):
+class StopPage(HTMLPage):
pass
diff --git a/modules/poivy/browser.py b/modules/poivy/browser.py
index 5a0d700e..dac6146f 100644
--- a/modules/poivy/browser.py
+++ b/modules/poivy/browser.py
@@ -18,9 +18,10 @@
# along with weboob. If not, see .
from weboob.tools.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.browser import BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from .pages import HomePage, LoginPage, HistoryPage, BillsPage, ErrorPage
+
__all__ = ['PoivyBrowser']
diff --git a/modules/poivy/pages.py b/modules/poivy/pages.py
index 84b96643..7f29d0bf 100644
--- a/modules/poivy/pages.py
+++ b/modules/poivy/pages.py
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see .
-from weboob.tools.browser import BrowserBanned
+from weboob.tools.exceptions import BrowserBanned
from weboob.tools.browser2.page import HTMLPage, LoggedPage, method, ListElement, ItemElement, pagination
from weboob.tools.browser2.filters import CleanText, CleanDecimal, Field, Attr, DateTime, Link, Format
from weboob.capabilities.bill import Subscription, Detail
diff --git a/modules/redmine/backend.py b/modules/redmine/backend.py
index 508982ac..53a1ad5b 100644
--- a/modules/redmine/backend.py
+++ b/modules/redmine/backend.py
@@ -26,7 +26,7 @@ from weboob.capabilities.bugtracker import ICapBugTracker, Issue, Project, User,
Query, Change
from weboob.capabilities.collection import ICapCollection, Collection, CollectionNotFound
from weboob.tools.backend import BaseBackend, BackendConfig
-from weboob.tools.browser import BrowserHTTPNotFound
+from weboob.tools.exceptions import BrowserHTTPNotFound
from weboob.tools.value import ValueBackendPassword, Value
from .browser import RedmineBrowser
diff --git a/modules/tinder/browser.py b/modules/tinder/browser.py
index cb9d56ca..ac79c50c 100644
--- a/modules/tinder/browser.py
+++ b/modules/tinder/browser.py
@@ -21,7 +21,7 @@
import re
from weboob.tools.browser2 import DomainBrowser, HTMLPage, Profile
-from weboob.tools.browser import BrowserIncorrectPassword
+from weboob.tools.exceptions import BrowserIncorrectPassword
from weboob.tools.json import json