Larvis
@Larvis
Fullstack Web developer.

Python Request: как авторизоваться и нажать button «onclick»?

Добрый день, есть тут загвоздка по поводу авторизации. Есть сайт на ява и ajax авторизацией При входе в качестве логина устанавливается сертификат, requests справился с этим, а вот при вводе пароля не знаю как дать запрос на нажатие кнопки.

Что указать в словаре payload для нажатии кнопки вход ?(код html кнопки ниже.)

И как работать с xpath?

<input type="password" autocomplete="off"
 size="0" name="passwordField" onchange="" 
class=".LoginText" title="Пароль" id="passwordField">
===
<button type="submit" onclick="submitForm('DefaultFormName',1,
{'_FORM_SUBMIT_BUTTON':'SubmitButton0OGtbcTW'});return false"
style="background-image:url(/OA_HTML/cabo/images/swan/btn-bg1.gif)"
class="x7g" title="Вход" id="SubmitButton">Вход</button>


import requests
    cert =('cert','key')
    password = "qwerty123"
    auths ={'passwordField':password}
    URL = "htтps://tender.sk.kz/OA_HTML/AppsLogin"
    s = requests.Session()
    r = s.get(URL, cert=cert, headers=headers, verify=False)
    auth_page = r.url
    r = s.post(auth_page, headers=headers, data=data)

KUPB0.png

Спасибо.
  • Вопрос задан
  • 8696 просмотров
Пригласить эксперта
Ответы на вопрос 1
hprot
@hprot
QA
Для работы с фронтом используется selenium webdriver. Библиотекой requests вы только отправляете http запросы и она подходит для тестирования api и бека, но никак не фронта.

А вот в селениуме есть все необходимые плюшки для работы с xpath и селекторами. Вот пример кода:

from selenium import webdriver

 driver = webdriver.Chrome()
    driver.get('#URL')
    username = driver.find_element_by_css_selector("input#username")
    username.click()
    username.send_keys('#Login')
    password = driver.find_element_by_css_selector("input#password")
    password.click()
    password.send_keys('11111')
    submit = driver.find_element_by_css_selector("input#kc-login")
    submit.click()
    time.sleep(3)
    activate_btn = driver.find_element_by_xpath(activate_xpath)
Ответ написан
Ваш ответ на вопрос

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

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