Данные механического суппорта не вводятся в форму - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь ввести имя пользователя и пароль в форму с помощью mechansoup, и кажется, что все работает правильно, но после ввода

response = browser.submit_selected()
print(response.text)

Он просто возвращает страницу входа снова.

I попытался отладить с помощью browser.launch_browser () в конце моего кода, и он просто показывает страницу входа без ввода данных в поля имени пользователя и пароля.

Я что-то упустил полностью из-за того, что я пытаюсь сделать? Страница входа: https://www.puregym.com/Login/ И мой код ниже:

import mechanicalsoup


browser.open("https://www.puregym.com/Login/")
browser.select_form('form[id="loginForm"]')


browser["email"] = "test@gmail.com"
browser["pin"] = "12345678"

response = browser.submit_selected()
browser.launch_browser()

1 Ответ

0 голосов
/ 07 февраля 2020

Похоже, что эта страница входа использует JavaScript, которую MechanicalSoup не поддерживает. См. Этот FAQ .

Самым большим преимуществом является то, что <form id="loginForm" ...> не имеет атрибута action, который, в случае его наличия, сообщал бы браузеру, куда отправлять данные формы в виде HTTP запрос в не JavaScript контексте.

Другой способ, которым вы могли бы сказать, что страница требует JavaScript, это отключив ее в браузере (например, в Chrome вы можете сделать это с помощью Chrome Инструменты разработчика), а затем попытайтесь войти в систему. Просмотр сайта с отключенным JavaScript может дать вам некоторое представление об альтернативных подходах к входу в систему, но вероятный ответ заключается в том, что вам потребуется использовать инструмент, поддерживающий JavaScript, как селен.

...