Що таке Selenium? Вступ Підручник
⚡ Розумний підсумок
Selenium — це безкоштовний фреймворк для автоматизованого тестування з відкритим кодом, розроблений для перевірки вебзастосунків у різних браузерах та на різних платформах з використанням кількох мов програмування. Він забезпечує надійну, ефективну та масштабовану автоматизацію тестування для сучасних практик забезпечення якості.

Що таке Selenium?
Selenium це безкоштовна платформа автоматизованого тестування (з відкритим кодом), яка використовується для перевірки веб-додатків у різних браузерах і платформах. Ви можете використовувати кілька мов програмування, наприклад Java, C#, Pythonтощо для створення Selenium Тестові сценарії. Тестування виконано за допомогою Selenium інструмент тестування зазвичай називають Selenium Тестування.
Експертні інсайти
«Уникайте використання фіксованих затримок сну у ваших тестах. Натомість використовуйте явні очікування (наприклад, WebDriverWait) для очікування завантаження елементів. Це робить ваші скрипти надійнішими та швидшими, оскільки вони динамічно реагують на фактичні умови сторінки — ключова найкраща практика для студентів у всьому світі, починаючи з…» Selenium».
👉 Зареєструйтесь для безкоштовного прямого ефіру Selenium Проект тестування
Selenium Набір інструментів
Selenium Програмне забезпечення — це не просто окремий інструмент, а набір програмного забезпечення, кожна частина якого призначена для різних потреб Selenium Потреби організації в тестуванні якості. Ось список інструментів
- Selenium Інтегроване середовище розробки (IDE)
- Selenium Пульт дистанційного керування (RC)
- веб-драйвер
- Selenium сітка
На даний момент, Selenium RC і WebDriver об’єднані в єдину структуру Selenium 2. Selenium 1, до речі, стосується Selenium RC.
Підручник відео Selenium
Натисніть тут якщо відео недоступне
Хто розробив Selenium?
З Selenium це набір різних інструментів, він також мав різних розробників. Нижче наведено ключових осіб, які зробили помітний внесок у Selenium Проекти
В першу чергу, Selenium було створений Джейсоном Хаггінсом у 2004 роціБудучи інженером у ThoughtWorks, він працював над веб-застосунком, який потребував частого тестування. Зрозумівши, що повторюване ручне тестування їхнього застосунку стає дедалі неефективнішим, він створив JavaScript програму, яка б автоматично керувала діями браузера. Він назвав цю програму "JavaВиконавець тестування скриптів.
Побачивши в цій ідеї потенціал для автоматизації інших веб-програм, він зробив JavaScriptRunner з відкритим кодом, який пізніше був перейменований Selenium Core. Для тих, хто зацікавлений у дослідженні інших варіантів тестування веб-додатків, подивіться на ці Selenium альтернативи.
Проблема політики того самого походження
Політика Same Origin забороняє JavaКод скрипта отримує доступ до елементів з домену, відмінного від того, де його було запущено. Наприклад, HTML-код на сайті www.google.com використовує JavaПрограма-скрипт «randomScript.js». Така ж політика походження дозволить randomScript.js отримувати доступ лише до сторінок у межах google.com, таких як google.com/mail, google.com/login або google.com/signup. Однак, він не може отримати доступ до сторінок з різних сайтів, таких як yahoo.com/search або guru99.com, оскільки вони належать до різних доменів.
Ось чому, до того, як Selenium RC, потрібні тестери для встановлення локальних копій обох Selenium Ядро (а Java(програма скриптів) та веб-сервер, що містить тестовану веб-програму, щоб вони належали до одного домену
Народження Selenium Пульт (Selenium RC)
На жаль, тестувальники, які використовують Selenium Через обмеження, накладені політика одного походженняОтже, ще один інженер ThoughtWorks, Пол Хаммант, вирішив створити сервер, який би діяв як HTTP-проксі, щоб «обдурити» браузер, змусивши його повірити, що Selenium Ядро та веб-програма, що тестується, походять з одного домену. Ця система стала відомою як Selenium дистанційне керування or Selenium 1.
Народження Selenium сітка
Selenium Грід був розроблений Патрік Лайтбоді щоб максимально мінімізувати час виконання тестів. Спочатку він назвав систему «Контроль якості на хостингу». Він був здатний робити скріншоти браузера під час важливих етапів, а також розсилка Selenium команди для різних машин одночасно.
Народження Selenium IDE
Шинья Касатані Японії створено Selenium IDE, то Firefox і розширення Chrome, яке може автоматизувати роботу браузера за допомогою функції запису та відтворення. Він придумав цю ідею, щоб ще більше збільшити швидкість створення тестових випадків. Він пожертвував Selenium IDE до Selenium Проект в 2006.
Народження WebDriver
Саймон Стюарт створено WebDriver приблизно 2006 коли веб-переглядачі та веб-додатки ставали все більш потужними та більш обмежувальними JavaПрограми-скрипти, як Selenium Основний Це був перший кросплатформний фреймворк для тестування, який міг керувати браузером на рівні ОС.
Народження Selenium 2
In 2008, Весь Selenium Команда вирішила об’єднати WebDriver і Selenium RC для створення потужнішого інструменту під назвою Selenium 2, С WebDriver є ядром. В даний час Selenium RC все ще розробляється, але лише в режимі технічного обслуговування. Більшість із Selenium Зараз зусилля проекту зосереджені на Selenium 2.
Отже, чому назва Selenium?
Ім'я Selenium походить із жарту, який Джейсон одного разу кинув своїй команді. Протягом Seleniumрозвиток, ін автоматизоване тестування фреймворк був популярно створений компанією під назвою Mercury інтерактивний (так, компанія, яка спочатку виробляла QTP до того, як його придбала HP). З того часу Selenium є відомим протиотрутою для Mercury отруєння, Джейсон запропонував це ім’я, і його взяли його товариші по команді. Ось як ми називаємо цю структуру до теперішнього часу.
Що таке Selenium IDE?
Selenium Інтегроване середовище розробки (IDE) - це найпростіший каркас , Selenium люкс і є найлегший для навчання. Це Chrome і Firefox підключати які ви можете встановити так само легко, як і з іншими плагінами. Однак через свою простоту, Selenium IDE слід використовувати лише як прототипping інструмент. Якщо ви хочете створити більш просунуті тестові випадки, вам потрібно буде використовувати будь-який з них Selenium RC або WebDriver.
Що таке Selenium Пульт (Selenium RC)?
Selenium RC був флагманська платформа тестування цілого Selenium проект на довгий час. Це перший автоматизований веб-тестування інструмент, який дозволяє користувачам використовувати мову програмування, яку вони віддають перевагу. Починаючи з версії 2.25.0, RC підтримує наступні мови програмування:
Що таке WebDriver?
WebDriver виявився кращим, ніж Selenium IDE та Selenium RC у багатьох аспектах. Він реалізує більш сучасний і стабільний підхід до автоматизації дій браузера. WebDriver, на відміну від Selenium RC, не покладається на JavaСценарій для Selenium Тестування автоматизації. Він керує браузером шляхом прямого зв’язку з ним.
Підтримувані мови такі ж, як і в Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- рубін
Що таке Selenium Сітка?
Selenium Сітка – це інструмент використовується разом з Selenium RC для запуску паралельні тести на різних машинах і в різних браузерах одночасно. Паралельне виконання означає виконання кількох тестів одночасно.
Особливості гри:
- дозволяє одночасне виконання тестів in кілька браузерів і середовищ.
- Економить час надзвичайно.
- Використовує концентратори та вузли концепція. Центр виступає як центральне джерело Selenium команд для кожного підключеного до нього вузла.
Selenium Підтримка браузера та середовища
Через їх архітектурні відмінності, Selenium SDI, Selenium RC і WebDriver підтримують різні набори браузерів і операційних середовищ.
| Selenium IDE | веб-драйвер | |
|---|---|---|
| Підтримка браузера | Mozilla Firefox і Chrome | Google Chrome 12 + Firefox Internet Explorer 7+ і Edge Сафарі, HtmlUnit і PhantomUnit |
| Operating System | Windows, Mac OS X, Linux | Усі операційні системи, у яких можуть працювати зазначені вище веб-переглядачі. |
Примітка: Opera Драйвер більше не працює
Як правильно вибрати Selenium Інструмент для ваших потреб
| Інструмент | Чому вибрати? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| веб-драйвер |
|
| Selenium сітка |
|
Практичні приклади з реального світу
🔍 Тематичне дослідження 1: Сумісність між браузерами для панелі інструментів SaaS
сценарій
Компанія, що надає програмне забезпечення як послугу, готувалася випустити аналітичну панель інструментів, яка мала б послідовно функціонувати в сучасних браузерах (Chrome, Firefox, Edge, Safari).
Виклики
Ручне тестування в кожному браузері було трудомістким, схильним до помилок і не могло встигати за швидкими ітераціями розробки.
Рішення с Selenium
Інженер з контролю якості створив Selenium сітка налаштовано для одночасного виконання одного й того ж набору тестів у кількох браузерах та комбінаціях ОС. Тести були створені в Python використання Selenium WebDriver для таких дій, як вхід, фільтрація діаграм та експорт даних.
Результат
- Зменшення тривалості регресії на 80%.
- Рано виявляв специфічні для браузера помилки рендерингу (наприклад, неправильно вирівняні графіки в IE).
- Забезпечено узгоджений інтерфейс користувача панелі інструментів у всій матриці браузера без додаткових ручних циклів.
⚙️ Тематичне дослідження 2: Інтеграція CI/CD для веб-застосунку через Selenium + TestNG
сценарій
Середня компанія з веб-розробки покладається на конвеєр CI/CD, використовуючи JenkinsЇм потрібно було забезпечити роботу основних шляхів користувача після кожної зміни коду.
Виклики
Нові розгортання збірок іноді порушували робочі процеси користувачів — вхід, надсилання форм — escaping виявлення до ручного тестування наприкінці дня.
Рішення с Selenium
Тестер реалізував JavaНа основі Selenium Пакет WebDriver, інтегрований з TestNGТести охоплювали автентифікацію, оновлення профілів та функції пошуку. Вони проводилися кожного Jenkins збірка, використовуючи паралельне виконання та параметризацію браузера.
Результат
- Досягнуто швидкого зворотного зв'язку про збої: перервані потоки були негайно позначені.
- Зменшення кількості помилок після розгортання на понад 60%.
- Дозволило розробникам вирішувати проблеми до того, як вони досягли етапу контролю якості.
🚀 Тематичне дослідження 3: Прискорення випуску функцій для агрегатора подорожей
сценарій
Платформі агрегатора туристичних даних потрібно було випустити оновлену функцію бронювання авіаквитків. Ручне регресійне тестування на понад 10 сторінках зайняло кілька днів і заблокувало реліз.
Виклики
Тиск на скорочення часу виведення продукції на ринок не міг випередити цикли ручного тестування, що призводило до затримок або зниження якості.
Рішення с Selenium & Об'єктна модель сторінки
Керівник відділу автоматизації контролю якості представив структуру моделі об'єктів сторінки (POM) у C#. Selenium Скрипти WebDriver інкапсулювали елементи сторінки та дії (пошук рейсів, застосування фільтрів та випадки оплати). Автоматизовані тестові запуски запускалися щоночі на GitLab CI.
Результат
- Час тестування скоротився з 3 днів до лише 4 годин.
- Повторне використання скриптів для кількох функцій скорочує зусилля на написання скриптів на 50%.
- Впевненість зросла: реліз вийшов за графіком з мінімальною кількістю повідомлень про помилки.
загальний Selenium Проблеми (та виправлення)
Навіть якщо Selenium є потужним, тестувальники часто стикаються з проблемами, які можуть вплинути на надійність та швидкість. Ось деякі поширені з них та способи їх виправлення:
- Нестабільні тести:
Тести можуть випадково завершитися невдачею через проблеми з часом або мережею.
Виправити: Використовуйте явні очікування та стабільні локатори; уникайтеThread.sleep(). - Динамічні веб-елементи:
Зміна ідентифікаторів елементів або XPath призводить до помилок «елемент не знайдено».
Виправити: Використовуйте відносні XPath, CSS-селектори або динамічну обробку атрибутів. - SyncПроблеми хронізації:
Елементи завантажуються повільніше, ніж виконання скрипта.
Виправити: Реалізуйте WebDriverWait з очікуваними умовами. - Невідповідності між браузерами:
Тести поводяться по-різному в Chrome, Firefoxабо Edge.
Виправити: Виконайте тести на Selenium Грід- або хмарні платформи для кросбраузерної валідації. - Обробка спливаючих вікон та сповіщень:
Неочікувані спливаючі вікна можуть перервати процес тестування.
Виправити: Скористайтеся кнопкою SeleniumІнтерфейс Alert або блоки try–catch для коректної їх обробки. - Накладні витрати на обслуговування тестування:
Часті зміни інтерфейсу користувача роблять тести крихкими.
Виправити: Використовуйте модель об'єктів сторінок (POM) та систему контролю версій для легкого оновлення. - Проблеми інтеграції:
Конвеєри CI/CD можуть вийти з ладу через проблеми з драйверами.
Виправити: Скористайтеся кнопкою Selenium менеджер (Selenium 4+) або WebDriver Manager для автоматичного керування драйверами.
Коротко: міст Selenium Проблеми виникають через погану синхронізацію або нестабільні локатори, і обидва вирішуються за допомогою розумніших очікувань, модульного проектування та постійного обслуговування.




.png)
.jpg)
.jpg)
.jpg)



