handling useless captcha page
This commit is contained in:
parent
08e6aff39f
commit
1ae22f84a2
2 changed files with 29 additions and 0 deletions
|
|
@ -88,6 +88,7 @@ class Paypal(Browser):
|
||||||
self.location('https://' + self.DOMAIN + '/en/cgi-bin/webscr?cmd=_login-run')
|
self.location('https://' + self.DOMAIN + '/en/cgi-bin/webscr?cmd=_login-run')
|
||||||
|
|
||||||
self.page.login(self.username, self.password)
|
self.page.login(self.username, self.password)
|
||||||
|
self.page.validate_useless_captacha()
|
||||||
|
|
||||||
if self.is_on_page(LoginPage):
|
if self.is_on_page(LoginPage):
|
||||||
raise BrowserIncorrectPassword()
|
raise BrowserIncorrectPassword()
|
||||||
|
|
|
||||||
|
|
@ -20,20 +20,48 @@
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
from mechanize import Cookie
|
||||||
|
|
||||||
from weboob.capabilities.bank import Account
|
from weboob.capabilities.bank import Account
|
||||||
from weboob.capabilities.base import NotAvailable
|
from weboob.capabilities.base import NotAvailable
|
||||||
from weboob.deprecated.browser import Page
|
from weboob.deprecated.browser import Page
|
||||||
|
from weboob.deprecated.mech import ClientForm
|
||||||
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
|
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
|
||||||
from weboob.tools.date import parse_french_date
|
from weboob.tools.date import parse_french_date
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class LoginPage(Page):
|
class LoginPage(Page):
|
||||||
def login(self, login, password):
|
def login(self, login, password):
|
||||||
|
#Paypal use this to check if we accept cookie
|
||||||
|
c = Cookie(0, 'cookie_check', 'yes',
|
||||||
|
None, False,
|
||||||
|
'.' + self.browser.DOMAIN, True, True,
|
||||||
|
'/', False,
|
||||||
|
False,
|
||||||
|
None,
|
||||||
|
False,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
{})
|
||||||
|
cookiejar = self.browser._ua_handlers["_cookies"].cookiejar
|
||||||
|
cookiejar.set_cookie(c)
|
||||||
|
|
||||||
self.browser.select_form(name='login_form')
|
self.browser.select_form(name='login_form')
|
||||||
self.browser['login_email'] = login.encode(self.browser.ENCODING)
|
self.browser['login_email'] = login.encode(self.browser.ENCODING)
|
||||||
self.browser['login_password'] = password.encode(self.browser.ENCODING)
|
self.browser['login_password'] = password.encode(self.browser.ENCODING)
|
||||||
self.browser.submit(nologin=True)
|
self.browser.submit(nologin=True)
|
||||||
|
|
||||||
|
def validate_useless_captacha(self):
|
||||||
|
#paypal use a captcha page after login, but don't use the captcha
|
||||||
|
self.browser.select_form(name='challenge')
|
||||||
|
self.browser.form.set_all_readonly(False)
|
||||||
|
|
||||||
|
#paypal add this on the captcha page when the validate should be automatique
|
||||||
|
self.browser.controls.append(ClientForm.TextControl('text', 'ads_token_js', {'value': ''}))
|
||||||
|
self.browser['ads_token_js'] = self.browser['ads_token']
|
||||||
|
self.browser.submit(nologin=True)
|
||||||
|
|
||||||
|
|
||||||
class UselessPage(Page):
|
class UselessPage(Page):
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue