From c5a79d025d028aeb3e33af793fbc8cbac8953e4b Mon Sep 17 00:00:00 2001 From: Florian Duguet Date: Fri, 8 Feb 2019 14:37:55 +0100 Subject: [PATCH] [edf] - par - fix login by correctly handling captcha they have added another way to login with otp, by sms or email otp is just the first time we login, and to manage it we would have to store session in StatesMixin but it's not mandatory, we still can continue to use recaptcha google and edf won't ask us otp Closes: 36486@sibi --- modules/edf/par/browser.py | 4 +--- modules/edf/par/pages.py | 6 ++++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/edf/par/browser.py b/modules/edf/par/browser.py index 1733735fd0..f2c18e0285 100644 --- a/modules/edf/par/browser.py +++ b/modules/edf/par/browser.py @@ -92,10 +92,8 @@ def do_login(self): """ self.check_authenticate.go() else: - self.home.go() + self.authenticate.go(method='POST', params=auth_params) if self.page.has_captcha_request(): - # google recaptcha site key is returned here, but it's not a good one, take it from another url - self.authenticate.go(method='POST', params=auth_params) data = self.page.get_data() website_key = data['callbacks'][4]['output'][0]['value'] website_url = "https://espace-client.edf.fr/sso/XUI/#login/&realm=%2FINTERNET" diff --git a/modules/edf/par/pages.py b/modules/edf/par/pages.py index 0a28a1d2c4..0565e3749f 100644 --- a/modules/edf/par/pages.py +++ b/modules/edf/par/pages.py @@ -33,11 +33,13 @@ class HomePage(HTMLPage): - def has_captcha_request(self): - return len(self.doc.xpath('//div[@class="captcha"]')) > 0 + pass class AuthenticatePage(JsonPage): + def has_captcha_request(self): + return self.doc['stage'] == "RecaptchaModuleS1" + def get_data(self): return self.doc -- GitLab