Selenium — это мощный инструмент, который может автоматизировать ваши основные задачи и может использоваться для очистки веб-страниц. Автоматизация повторяющихся задач может помочь сэкономить много времени. Если вы программист или просто деловой человек, знание селена и питона может быть очень полезным для ваших повседневных задач.

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

Что мы будем делать?

Прежде чем читать статью полностью, давайте разберемся, что вы узнаете/узнаете из этой статьи.

  1. Как установить и настроить Python, Selenium и ChromeDriver для автоматизации
  2. Основы селена
  3. Как автоматизировать веб-сайты — мы будем входить на случайный веб-сайт с некоторыми предварительно определенными учетными данными, брать некоторые данные после входа в систему, например, зарегистрированное имя пользователя и выход из веб-сайта.

Требования:

Есть несколько инструментов, которые вам нужно иметь перед тем, как начать программировать.

  1. Python — убедитесь, что в вашей системе установлен Python. Вы можете просто перейти к command prompt or terminal и ввести python --version в Windows, а для Linux/macos может работать python -version. Если у вас не установлен python, вот ссылка для установки.

Скачать Python Python.org

В моем случае я использую версию Python 3.9.7.

2. Селен:

После того, как вы установили Python, нам нужно установить библиотеку selenium, которая поможет нам автоматизировать работу. Библиотека — это уже написанный код или инструмент, который мы можем использовать. Итак, в библиотеке Selenium есть несколько встроенных функций, которые помогут нам взаимодействовать с веб-браузерами и отправлять команды.

Команда для установки селена: pip install selenium

Это установит селен в вашей системе локально.

3. Драйвер Chrome:

WebDriver — это инструмент с открытым исходным кодом для автоматизированного тестирования веб-приложений во многих браузерах. Chromedriver предоставляет нам среду или браузер, которым мы можем управлять через наш скрипт для посещения веб-страниц.

Ссылка для скачивания: ChromeDriver — WebDriver для Chrome (chromium.org)

Это все, что нам нужно для этого урока.

Теперь нам нужно настроить наш код.

Примечание. Убедитесь, что в вашей системе установлены одинаковые версии chromedriver и браузера chrome. если вы загружаете последнюю стабильную версию с сайта драйверов Chrome, убедитесь, что ваш Chrome обновлен до последней версии. в противном случае вы получите ошибки.

Настройка кода

  1. Создайте одну папку, в которой будет храниться наш код. В эту папку добавьте chromedriver.exeВы, вероятно, получите zip после загрузки. Извлеките его, и он будет иметь файл .exe.

2. Давайте создадим наш файл Python. Я назвал его test.py

Итак, моя папка selenium будет выглядеть так.

Кодирование

сначала мы импортируем библиотеки, которые нам нужны. Добавьте приведенный ниже код в файл test.py.

from selenium import webdriver

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options

Все эти библиотеки селена имеют разные функции, которые нам нужны.

Первый импорт webdriver требуется для связи с веб-браузером, установления соединения и управления им.

webDriverWait — Эта функция/класс помогает нам увеличить время ожидания в наших операциях. Иногда в нашей автоматизации нам нужно дождаться ответа сервера, и пока веб-страница загружается, функции wait помогают добавлять неявное и явное ожидание. Например, у вас есть веб-сайт, который генерирует комбинации строк или имен, когда вы отправляете слово. Поэтому нам нужно дождаться, пока веб-страница или веб-сайт загрузит сгенерированные данные.

By и EC — эти функции обеспечивают простой выбор веб-элементов, таких как поля ввода, кнопки, текст и т. д., с их свойствами Xpath или CSS.

Options — Это дает дополнительные возможности для нашего веб-драйвера. Chrome может работать в автономном режиме или в режиме реального времени. Headless — это, по сути, наш код будет посещать веб-сайты и удалять данные, и мы не увидим этого процесса. Мы будем напрямую получать данные/результат.

С другой стороны, если вы хотите, чтобы браузер открылся в вашей системе перед вами, введите автоматический ввод и нажмите кнопку, как вы закодировали. вы должны отключить безголовый режим. По умолчанию он отключен.

Теперь давайте перейдем к следующему коду.

options = webdriver.ChromeOptions()
# options.add_argument('--headless')
options.add_experimental_option('excludeSwitches', ['enable-logging'])
web = webdriver.Chrome(options=options,executable_path='chromedriver.exe')

Как вы можете видеть, как добавить headless option, сейчас мы прокомментировали это, потому что я хочу показать вам, как работает автоматизация.

сосредоточьтесь на последней строке: web — это наш объект, который содержит свойства chromedriver. Теперь мы будем запускать все наши функции для этого свойства.

Шаг 1. Запуск браузера и посещение веб-сайта

Итак, давайте выберем любой сайт для автоматизации. Это один из моих проектов простых операций с интернет-магазином.

Войти/Зарегистрироваться (000webhostapp.com)

скопируйте ссылку на сайт и нажмите на запрос на получение.

web.get("https://osmphp.000webhostapp.com/views/login.php");

Теперь запустите код. Эта команда get должна открыть браузер и показать вам страницу входа.

Поздравляем!! Вы только что успешно открыли браузер и посетили веб-сайт с помощью кода селена. Это означает, что вы все правильно установили и настроили.

На этом этапе, если вы не можете открыть браузер или получаете какую-либо ошибку, отправьте комментарии. Конечно же я помогу тебе.

Шаг 2: Вход на сайт

Вы можете зарегистрироваться, используя учетные данные, которые этот веб-сайт не запрашивает OTP. Я оставляю это вам, чтобы автоматизировать страницу регистрации, когда вы вводите этот код.

Фиктивные учетные данные для тестирования:

электронная почта: [email protected]

пароль: 123123

Мы должны ввести данные для входа в поля ввода. Поэтому для этого нам нужно выбрать эти поля ввода и передать ввод через код, это наше основное требование.

Теперь, чтобы достичь этого, нам нужно однозначно идентифицировать HTML-элементы на веб-странице. Идентификацию элементов можно выполнить с помощью пути JS, идентификатора CSS, Xpath/полного XPath. Все немного одинаковые. Мне нравится использовать Full Xpath, он полностью дает полные уникальные идентификаторы. Поэтому скопируйте Xpath адреса электронной почты и аналогичное поле для пароля, как показано на скриншоте выше.

try:
    # create a field object
    email = WebDriverWait(web, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div/form/div[1]/input")))
    # click on it to enable the input field
    email.click()
    # insert the input using send_keys function
    email.send_keys("[email protected]")

except:
  pass

Итак, код хорошо прокомментирован. Но позвольте мне все же объяснить процесс.

Для предоставления любого ввода нам нужно выполнить 3 основных шага

а. Найдите поле ввода на веб-странице — с помощью XPath. Ниже код выполняет работу по выбору поля ввода

email = WebDriverWait(web, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div/form/div[1]/input")))

б. Нажмите / выберите элемент для добавления ввода — метод click выбирает поле ввода.

в. Добавить ввод — send_keys("inputvalue") эта функция отправляет значение, переданное в кавычках, выбранному элементу.

Точно так же выберите поле пароля и кнопку с помощью Xpath и используйте только метод click для кнопки.

после этого вы войдете на сайт. Ссылка на полный код github указана ниже. пожалуйста, проверьте его для печати данных и процесса выхода из системы.

Код проекта Ссылка на GitHub: https://github.com/dhgavali/selenium-login-webpage-automation

Спасибо за прочтение! Надеюсь, в этой статье все было понятно. Подпишитесь, чтобы получать новости о разработке программного обеспечения, автоматизации и последних обновлениях технологий.

Кто я?

Подключаем 🤝😃

Портфолио: Добро пожаловать — Главная (dhgavali.me)

LinkedIn: Дхананджай Гавали | LinkedIn