Использую
https://github.com/yoori/flare-bypasser необходимо зайти по адресу сайта и выполнить авторизацию.
Создаю кастомную команду:
import zendriver_flare_bypasser as zendriver
from flare_bypasser import BaseCommandProcessor, Request, Response, BrowserWrapper
class MyAuthClickCommandProcessor(BaseCommandProcessor):
async def preprocess_command(self, req: Request, driver: BrowserWrapper) -> Request:
# Here we can check some required parameters in req.params and raise error.
return req
async def process_command(self, res: Response, req: Request, driver: BrowserWrapper) -> Response:
nodriver_tab: zendriver.Tab = driver.get_driver()
# нахожу кнопку Login-а и выполняю клик по ней - для открытия и загрузки формы авторизации (загружается javascript-ом)
account_button = await nodriver_tab.select_all('div.userlogedin')
if not account_button:
raise Exception("MyAuthClickCommandProcessor: no acccount button found: ")
await account_button[0].click()
# нахожу кнопку для подтверждения принятия cookies
allow_cookie = await nodriver_tab.select('#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll')
if allow_cookie:
await allow_cookie.click()
# ищу поле для ввода логина
login_field = await nodriver_tab.select('input[name=username_new]')
if not login_field:
raise Exception("MyAuthClickCommandProcessor: not find login field: ")
login_field.set_value('tesst')
# ищу поле для ввода пароля
pass_field = await nodriver_tab.select('input[name=password_new]')
pass_field.set_value('testingpass')
# авторизация
login_button = await nodriver_tab.select('#btnSubmitLogin_new')
if not login_button:
raise Exception("PrometeusAuthClickCommandProcessor: not find login button field: " + str(dom_with_account))
await login_button.click()
res.response = await nodriver_tab.get_content() # get source code of page (actual DOM)
# Expect here "Bledny kod" text in DOM (appears only after click)
return res
def get_user_commands():
return {
'my_auth': MyAuthClickCommandProcessor()
}
При вызове - загружает страницу, нажимает на кнопку Логина, аяксом догружает форму авторизации
И затем я пытаюсь найти поле логина и пароля и заполнить их значения, а после нажать на кнопку авторизации - но это не происходит...
Насколько я понимаю сам flare-bypasser - это ответвление от
https://github.com/stephanlensky/zendriver
пробую делать set_value - почему не срабатывает не понимаю.