Скажите, как на питоне можно ввнести данные в вебформу и выполнить поиск?
Это можно сделать с помощью библиотеки 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()