Как на python автоматически зайти на вебсайт и внести данные в форму?

Скажите, как на питоне можно ввнести данные в вебформу и выполнить поиск?

Это можно сделать с помощью библиотеки selenium.

Первым делом необходимо импортировать сам инструмент Selenium и пакет WebDriver, который как раз запускает и работает с браузером.

from selenium import webdriver

Далее мы создаем объект driver (по сути это обычная переменная куда поместили метод webdriver).

driver = webdriver.Chrome()

Теперь переменная driver это наш Selenium, с нужным нам драйвером для браузера, например хромом.

Нам необходимо сделать так, чтобы наш браузер открылся и перешел на нужный сайт, для этого в Selenium есть метод get, который принимает строку. Указываем адрес Яндекса.

driver.get("http://www.ya.ru")

Для того чтоб использовать данный селектор нужно указать команду find_element_by_id (найти по ID). В эту команду как раз и передим нам ID

search_string = driver.find_element_by_id("text")

Мы записали наш код в переменную search_string (найти строку),для того чтобы каждый раз не писать find_element_by_id. Теперь любое действие с поисковой строкой Яндекса будет доступно через search_string.

Теперь нужно ввести слово в поисковую строку.Используем для этого метод send_keys (ввести ключ).В него введем название нашего сайта «fadmin.ru»

search_string.send_keys("fadmin.ru")

Следующим шагом будет произвести поиск.Это можно сделать двумя способами:

  • Найти селектор кнопки «Искать» через find_element_by
  • Использовать метод submit() , который эмулирует подтверждение действия пользователя на странице.

Проще через submit()

search_string.submit()

В принципе наш первый тест закончен, но если мы сейчас его запустим — браузер отработает и будет висеть в системе как «работающий».

Поэтому нам необходимо добавить команду закрытия браузера и остановки драйвера браузера — quit()

Метод quit() вызываем не у нашей строки поиска , а у самого браузера (переменная driver).

driver.quit()

Можно запускать.

import time — импортирует модуль time в ваш тест

time.sleep(3) — создает паузу на 3 секунды

Вот как выглядит код с паузой:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.ya.ru")
search_string = driver.find_element_by_id("text")
search_string.send_keys("fadmin.ru")
search_string.submit()
time.sleep(3)
driver.quit()

Вы можете задать вопрос по статье специалисту.

Экстренные выезды для восстановления рабочих данных из резервных копий.

Помните, что все действия вы выполняете на свой страх и риск — загрузка неверных данных может повлечь за собой крах системы и потерю информации.
Тестирование в тестовой среде никто не отменяет.
Администрация сайта не несет ответственность за ваши действия.
Вся информация на сайте носит исключительно справочный характер и не является публичной офертой, определяемой в Статье 437 Гражданского кодекса Российской Федерации.