Newer
Older
from __future__ import unicode_literals
from weboob.browser.pages import HTMLPage, LoggedPage
from weboob.browser.filters.standard import CleanText, Regexp
from weboob.browser.filters.html import Link
class GenericLandingPage(LoggedPage, HTMLPage):
"""generic page associated with generic operations"""
def get_middle_frame_url(self):
return CleanText('//script[contains(@src, "cgi")][1]/@src', default=None)(self.doc)
class JSMiddleFramePage(LoggedPage, HTMLPage):
"""Middle Frame Page"""
def is_here(self):
return self.content.decode('iso-8859-1').startswith('var mc')
def get_patrimoine_url(self):
return Link('//a[contains(., "Espace Patrimoine")]', default=None)(self.doc)
class JSMiddleAuthPage(LoggedPage, HTMLPage):
def is_here(self):
return "https://www.hsbc.fr/1/3/authentication/sso-cwd" in self.content.decode('iso-8859-1')
def get_middle_auth_link(self):
return Regexp(CleanText('//body/@onload'), r'top.location.replace\(\'(https://.*)\'\)')(self.doc)
def go_next(self):
self.browser.location(self.get_middle_auth_link())
class InvestmentFormPage(LoggedPage, HTMLPage):
def is_here(self):
return self.doc.xpath('boolean(//form[@name="launch"])')
def go_to_logon(self):
self.get_form(name='launch').submit()
assert self.browser.logon_investment_page.is_here()