Что такое Selenium? Вводный курс
⚡ Умное резюме
Selenium — это бесплатная платформа автоматизированного тестирования с открытым исходным кодом, предназначенная для проверки веб-приложений в браузерах и на платформах с использованием различных языков программирования. Она обеспечивает надежную, эффективную и масштабируемую автоматизацию тестирования для современных методов обеспечения качества.

Что такое Selenium?
Selenium — это бесплатная платформа автоматического тестирования (с открытым исходным кодом), используемая для проверки веб-приложений в различных браузерах и платформах. Вы можете использовать несколько языков программирования, например Java, С#, Pythonи т. д., чтобы создать Selenium Тестовые сценарии. Тестирование проведено с помощью Selenium инструмент тестирования обычно называют Selenium Тестирование.
Мнения экспертов
«Избегайте использования фиксированных задержек сна в своих тестах. Вместо этого используйте явные ожидания (например, WebDriverWait) для ожидания загрузки элементов. Это делает ваши скрипты более надежными и быстрыми, поскольку они динамически реагируют на фактические условия страницы — ключевая передовая практика для студентов во всем мире, начиная с Selenium".
👉 Зарегистрируйтесь на бесплатный Live 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, он работал над веб-приложением, требующим частого тестирования. Поняв, что многократное ручное тестирование приложения становится всё менее эффективным, он создал JavaСценарий Программа, которая автоматически управляла действиями браузера. Он назвал эту программу JavaScriptTestRunner».
Увидев в этой идее потенциал для автоматизации других веб-приложений, он сделал JavaScriptRunner с открытым исходным кодом, который позже был переименован Selenium Основные. Для тех, кто заинтересован в изучении других вариантов тестирования веб-приложений, взгляните на эти Selenium альтернативы.
Та же проблема с политикой происхождения
Политика того же происхождения запрещает 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 РЦ)
К сожалению, тестировщики, использующие Selenium Core пришлось установить все тестируемое приложение и веб-сервер на свои локальные компьютеры из-за ограничений, налагаемых политика одного и того же происхождения. Итак, еще один инженер ThoughtWorks, Пол Хаммант, решили создать сервер, который будет действовать как HTTP-прокси, чтобы «обмануть» браузер, заставив его поверить, что Selenium Ядро и тестируемое веб-приложение принадлежат одному домену. Эта система стала известна как Selenium дистанционное управление or Selenium 1.
Рождение Selenium сетка
Selenium Сетка была разработана Патрик Лайтбоди для решения задачи максимального сокращения времени выполнения теста. Изначально он назвал систему «Проведенное тестирование качества». Он был способен делать снимки экрана браузера во время важных этапов, а также отправка Selenium команды на разные машины одновременно.
Рождение Selenium IDE
Шинья Касатани Японии создали Selenium IDE, чтобы Firefox и расширение Chrome, которое может автоматизировать работу браузера с помощью функции записи и воспроизведения. Он придумал эту идею, чтобы ещё больше ускорить создание тестовых случаев. Он пожертвовал Selenium IDE для Selenium Проект в 2006.
Рождение ВебДрайвера
Саймон Стюарт создал 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 РК)?
Selenium РК был флагманская платформа тестирования всего Selenium проект на долгое время. Это первый автоматизированный веб-тестирование инструмент, который позволяет пользователям использовать язык программирования, который они предпочитают. Начиная с версии 2.25.0, RC может поддерживать следующие языки программирования:
Что такое Вебдрайвер?
WebDriver оказался лучше, чем Selenium IDE и Selenium RC во многих аспектах. Он реализует более современный и стабильный подход к автоматизации действий браузера. ВебДрайвер, в отличие от Selenium RC, не полагается на JavaСкрипт для Selenium Автоматизация тестирования. Он управляет браузером, напрямую общаясь с ним.
Поддерживаемые языки такие же, как и в Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Ruby
Что такое 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 Сафари, ХтмлЮнит и ФантомЮнит |
| 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Им нужно было обеспечить корректную работу основных пользовательских сценариев после каждого изменения кода.
Вызов
Внедрение новых сборок иногда приводило к сбоям в работе пользовательских сценариев — входу в систему, отправке форм и т.д.ping обнаружение вплоть до ручного тестирования в конце дня.
Решение с Selenium
Тестировщик реализовал JavaНа основе Selenium Пакет WebDriver интегрирован с TestNGТесты охватывали функции аутентификации, обновления профиля и поиска. Они проводились на всех устройствах. Jenkins сборка с использованием параллельного выполнения и параметризации браузера.
Результат
- Достигнута быстрая обратная связь: нарушенные потоки немедленно отмечаются.
- Сокращение количества ошибок после развертывания более чем на 60%.
- Разработчики получили возможность решать проблемы до того, как они попадут в отдел контроля качества.
🚀 Пример 3: Ускорение выпуска функций для туристического агрегатора
Сценарий
Платформе-агрегатору путешествий необходимо было выпустить обновленную функцию бронирования авиабилетов. Ручные регрессионные тесты на 10+ страницах заняли несколько дней и заблокировали выпуск.
Вызов
Необходимость сократить время вывода продукции на рынок не могла превзойти циклы ручного тестирования, что могло привести к задержкам или снижению качества.
Решение с Selenium и модель объекта страницы
Руководитель отдела автоматизации контроля качества представил структуру Page Object Model (POM) в C#. Selenium Скрипты WebDriver инкапсулировали элементы и действия страницы (поисковые рейсы, применение фильтров и случаи оплаты). Автоматизированные тестовые запуски запускались каждую ночь на GitLab CI.
Результат
- Время тестирования сократилось с 3 дней до всего лишь 4 часов.
- Повторное использование скриптов в нескольких функциях сокращает трудозатраты на создание скриптов на 50%.
- Уверенность возросла: релиз был выпущен по графику с минимальным количеством сообщений об ошибках.
Общие Selenium Проблемы (и решения)
Даже если Selenium Несмотря на всю мощь, тестировщики часто сталкиваются с проблемами, которые могут повлиять на надёжность и скорость. Вот некоторые распространённые проблемы и способы их решения:
- Нестабильные тесты:
Тесты могут случайно завершаться неудачей из-за проблем со временем или сетью.
Fix: Используйте явные ожидания и стабильные локаторы; избегайтеThread.sleep(). - Динамические веб-элементы:
Изменение идентификаторов элементов или XPath приводит к ошибкам «элемент не найден».
Fix: Используйте относительные XPath, селекторы CSS или динамическую обработку атрибутов. - SyncВопросы хронизации:
Элементы загружаются медленнее, чем выполняется скрипт.
Fix: Реализуйте WebDriverWait с ожидаемыми условиями. - Несоответствия между браузерами:
Тесты ведут себя по-разному в Chrome, Firefoxили Край.
Fix: Проведите тесты на Selenium Сетка или облачные платформы для кросс-браузерной проверки. - Обработка всплывающих окон и оповещений:
Неожиданные всплывающие окна могут прервать ход тестирования.
Fix: Используйте SeleniumИнтерфейс Alert или блоки try–catch для их корректной обработки. - Накладные расходы на обслуживание испытаний:
Частые изменения пользовательского интерфейса делают тесты хрупкими.
Fix: Используйте Page Object Model (POM) и контроль версий для удобства обновлений. - Проблемы интеграции:
Конвейеры CI/CD могут выйти из строя из-за проблем с драйверами.
Fix: Используйте Selenium Управляющий делами (Selenium 4+) или WebDriver Manager для автоматического управления драйверами.
Вкратце: Лучшее Selenium Проблемы возникают из-за плохой синхронизации или ненадежных локаторов. Обе проблемы можно решить с помощью более разумного ожидания, модульной конструкции и постоянного технического обслуживания.




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



