Как вводить значения в HTML-форму на Python

#python #html #python-requests

#python #HTML #python-запросы

Вопрос:

У меня есть простая HTML-форма, подобная этой

 <!DOCTYPE html>
<html>
<body>

<form action="/Login/Authenticate" id="Loginform" method="post">
  <label for="fname">User name:</label><br>
  <input class="Txt_bx password" data-val="true" data-val-required="Enter Password" id="txtPassword" name="Log.password" type="text"><br>
  <label for="lname">Password :</label><br>
  <input class="Txt_bx urserName" data-val="true" data-val-required="Enter Username" id="txtusername" name="Log.username" type="password" value="">
</form>

</body>
</html>  

Я хочу вставить некоторый текст в класс ввода Txt_bx password и Txt_bx username без использования selenium, поскольку это слишком медленно. Есть ли какой-либо другой способ, которым я могу это сделать?

Любая помощь будет оценена!

Комментарии:

1. дорогой @Heisenberg почему не использовал jquery или js? и это для тестирования? извините за мой язык, потому что английский не является моим основным языком

2. @sachinkumaraliyanage потому что я не знаю jquery и js. Я хотел взломать простую HTML-форму с помощью Python, вот почему я изучаю, как это сделать, но я не мог найти, как это сделать.

Ответ №1:

Вы могли бы использовать библиотеку запросов для Python, и эта страница должна помочь вам ознакомиться с POST (как видно по method тегу на форме) запросами в библиотеке. Вам нужно будет опубликовать в /Login/Authenticate , так как это action часть формы.

В вашем HTML-коде log.Password и log.Username будут ключи словаря, а значения будут любыми значениями, которые вы хотите. Например:

 data = {
    "log.Username": "mynewusername",
    "log.Password": "mynewpassword"
}
  

Комментарии:

1. Спасибо! Я попробую это. Кроме того, извините, что задал такой простой вопрос с возможностью поиска, я плохо гуглю.

2. вы уверены, что OP не означает ввод текста В поля ввода?

3. @TochiBedford Я не знаю, что делает код, поскольку, похоже, я не могу запустить это должным образом, но я действительно хочу получить текст в поля ввода и отправить его.

Ответ №2:

Попробуйте использовать запросы

 import requests

response = requests.post(
    'http://url.com/Login/Authenticate',
    data={
        "Log.password": "password",
        "Log.username": "username"
    }

)

print(response.content) #get the response from whatever server
  

Не забудьте заменить url.com с фактическим доменом