Автоматизация веб тестирования с Python и Selenium
Здравствуйте! В сегодняшней статье мы рассмотрим автоматизацию web тистирования при помощи языка Python, фреймворка Selenium
и Selenium WebDriver.
Коротко говоря, Selenium WebDriver использует язык программирования по вашему выбору для разработки сценариев для автоматического
просмотра веб-страниц в разных браузерах. Другими словами, Selenium WebDriver помогает автоматизировать то, что пользователь обычно
делает в веб-браузере. Вот и все!
Но то, что вы на самом деле делаете или автоматизируете, зависит только от вас. Автоматизация web тестирования, вот одно из возможных
применений Selenium WebDriver с Python.
Прежде чем углубляться в подробности, рекомендуется инициализировать и настроить WebDriver для браузеров, которые вы собираетесь использовать.
Вот 3 наиболее распространенных веб-драйвера, которые обычно используются:
Firefox — GeckoDriver
Chrome — ChromeDriver
Safari — SafariDriver (Обязательно включите « Разрешить удаленную автоматизацию » в Safari)
Загружаемый WebDriver должен иметь ту же версию, что и браузер вашего компьютера.
( Например: версия браузера Firefox на компьютере — 70.0.1 . Поэтому драйвер Gecko для загрузки — версия 0.26.0,
поскольку этот выпуск предназначен для версии Firefox> 60.0)
Далее инициализируем WebDriver:
from selenium import webdriver # Основной элемент webdriver
# Ниже приведены 3 импорта утилит для веб-драйвера
из selenium.webdriver.common.by import By
из
selenium.webdriver.support.ui
from bs4 import BeautifulSoup # Для парсинга HTML, если требуется
# настройка веб-драйверов - лучше использовать по одному
firefox = webdriver.Firefox(executable_path='path/to/gecko.exe')
chrome = webdriver.Chrome(executable_path='path/to/chrome.exe' )
safari = webdriver.Safari() # для сафари не требуется exe_path
Пример ниже дает представление о том, как структурировать модульные тесты. Мы можем загрузить веб-сайт,
щелкнуть каждую статью и (возможно) проанализировать статью с помощью bs4 , чтобы убедиться, что она не
содержит искаженных HTML — тегов.
Далее приступаем к самому веб тестированию.
# Цикл чередования Firefox, Chrome и Safari для тестирования веб-сайта.
webbie_url = r' https://myrusakov.ru/ '
for i in [firefox, chrome, safari]:
i.get(webbie_url)
# Здесь проверки bs4!!
# JavaScriptExecutor - для визуализации прокрутки
i.execute_script("window.scrollTo(0, document.body.scrollHeight);")
Таким образом, возможно автоматизировать выполнение большинства ручных тестов. Единственное чего не хватает
в нашем примере — это проверка результатов.