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.page.login(self.username, self.password)
|
||||
self.page.validate_useless_captacha()
|
||||
|
||||
if self.is_on_page(LoginPage):
|
||||
raise BrowserIncorrectPassword()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue