handling useless captcha page

This commit is contained in:
Vincent Paredes 2015-04-21 14:53:27 +02:00 committed by Romain Bignon
commit 1ae22f84a2
2 changed files with 29 additions and 0 deletions

View file

@ -88,6 +88,7 @@ class Paypal(Browser):
self.location('https://' + self.DOMAIN + '/en/cgi-bin/webscr?cmd=_login-run')
self.page.login(self.username, self.password)
self.page.validate_useless_captacha()
if self.is_on_page(LoginPage):
raise BrowserIncorrectPassword()

View file

@ -20,20 +20,48 @@
from decimal import Decimal
import re
from mechanize import Cookie
from weboob.capabilities.bank import Account
from weboob.capabilities.base import NotAvailable
from weboob.deprecated.browser import Page
from weboob.deprecated.mech import ClientForm
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
from weboob.tools.date import parse_french_date
class LoginPage(Page):
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['login_email'] = login.encode(self.browser.ENCODING)
self.browser['login_password'] = password.encode(self.browser.ENCODING)
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):
pass