Задать вопрос

FlareBypasser (Zendriver) как заполнять value в тегах input?

Использую 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 - почему не срабатывает не понимаю.
  • Вопрос задан
  • 30 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы