ЧАВО

ЧАВО

Часто задаваемые вопросы

Мотивация

Почему недостаточно Selenium webdriver

Зачем понадобилась ещё одна обёртка над Selenium?

Вкратце: короче код, лучше читается, не надо переизобретать велосипед.

И куча дополнительных фич для тестирования.
И автоматические скриншоты и отчёты.
И запись видео.
И тесты для мобилок.
И много чего ещё…

Подробный ответ здесь

Page Objects

Можно ли использовать Пэдж Обжекты с Selenide?

Да! Вы можете использовать Пэдж Обжекты с Selenide.

Более того, с Selenide ваши page objects станут короче и читабельнее. Тут подробности.

Настройки

Где я могу найти все доступные настройки Selenide?

Описание всех настроек и значений по умолчанию можно найти в javadoc.

Как задать настройки Selenide?

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

Но если всё-таки захочется запустить тесты с другими настройками, это можно сделать либо через System property:

-Dselenide.timeout=6000

либо программно, прямо в тестах:

public void setUp() {
  Configuration.timeout = 6000;
}

Ещё можно создать файл “selenide.properties” в classpath (в типовом проекте это значит создать файл src/test/resources/selenide.properties):

> cat src/test/resources/selenide.properties
selenide.timeout=6000
selenide.browser=edge
selenide.remote=https://hub.lambdatest.com/wd/hub
selenide.textCheck=FULL_TEXT

Настройки браузера можно задавать не глобально, а каждый раз при открытии браузера:

Config config = new SelenideConfig().browser("firefox").browserSize("800x600");
open("/one", config);

Используйте вдумчиво!

Браузеры

Можно ли запустить тесты Selenide на Internet Explorer? А headless-браузере?

Да. Selenide можно запускать с любым браузером, для которого существует webdriver. Самые популярные браузеры поддерживаются из коробки (chrome, firefox, edge, ie, safari, opera).

Некоторые менее популярные тоже поддерживаются, но требуют пары строк конфигурации (например, htmlunit). См. Wiki.

Другие браузеры тоже можно использовать, передав имя класса вебдрайвера (или фабрики).


Например, чтобы запустить тесты с браузером Firefox: -Dselenide.browser=firefox


Как сказать Selenide использовать браузер с моим кастомным профайлом?

Вы можете подсунуть Selenide любой экземпляр webdriver, который вы можете создать с какими угодно параметрами. Смотри примеры на Wiki.


Можно ли использовать Selenide в связке с Selenium Grid?

Да, Selenide поддерживает Selenium Grid. Просто добавьте настройку при запуске тестов:

-Dselenide.remote=https://your.grid.com:5678/wd/hub

Большинство функционала заработает автоматически. Но для некоторых фич (в частности, скачивания файлов) потребуется добавить зависимость com.codeborne:selenide-grid.

См. плагин selenide-grid

Можно ли использовать Selenide в связке с Selenoid?

Да, Selenide поддерживает Selenoid. Просто добавьте настройку при запуске тестов:

-Dselenide.remote=https://your.selenoid.com:5678/wd/hub

Но для некоторых фич (в частности, скачивания файлов) потребуется добавить зависимость com.codeborne:selenide-selenoid.

См. плагин selenide-selenoid.


Можно ли использовать Selenide в связке с Selenoid/Moon/BrowserStack/LambdaTest/TestContainers или другими облачными провайдерами?

Да. См. доку

Можно ли использовать Selenide для тестирования мобильных приложений?

Да, Selenide поддерживает тестирование мобильных приложений с помощью библиотеки Appium.

Вот что вам нужно сделать:

  1. Добавить в зависимости селенидовский плагин selenide-appium.
  2. Найти рабочие примеры на гитхабе
  3. Посмотреть презентацию Selenide для мобилок

Билд-скрипты

Как запустить тесты Selenide на CI - сервере непрерывной интеграции?

Для этого нужно написать билд-скрипт. Скорее всего он у вас уже есть. На Wiki page есть несколько примеров на Maven, Gradle и Ant.

Скриншоты (снимок экрана)

Как сделать скриншот в тесте?

См. документация -> Скриншоты

Как сказать Selenide сохранять скриншоты в другую папку?

См. документация -> Скриншоты

Вкладки/окна браузера

Как переключаться между разными окошками / вкладками браузера?

Для этого можно использовать API самого Selenium WebDriver.

  • getWebDriver().getWindowHandles() - возвращает множество всех вкладок или окон
  • getWebDriver().getWindowHandle() - возвращает уникальный идентификатор активной вкладки или окна.

Исходный код Selenide

Могу ли я посмотреть исходный код Selenide?

Да. Исходный код Selenide выложен на гитхабе.

Могу ли я вносить изменения в Selenide?

Конечно! На то он и open source.

  • Если умеете кодить сами, смело создавайте Pull Request,
  • если нет - оформляйте свои пожелалки в виде issue.

Руководствуйтесь и

Мотивируйтесь: Как законтрибьютить в опенсорс, чтобы не сгореть со стыда.

Лицензия

Сколько стоит Selenide?

Если наш заказчик потребует исходный код тестов, позволяет ли лицензия Selenide ему их передать?

Selenide - бесплатный продукт с открытым исходным кодом, распространяемый по лицензии MIT. Проще говоря, это значит, что вы можете делать с ним всё что угодно.

А точно вы не сделаете Selenide платным?

Точно. Selenide всегда будет бесплатным.

  • Во-первых, потому, что мы верим в open-source.
  • Во-вторых, потому, что мы не верим, что на этом можно заработать. :)

Полезно почитать

  • Если у вас Gradle, JUnit5, Allure и Selenide, то вам стоит почитать статью, где описан минимальный набор шагов и конфигураций для получения базового тестового окружения, так же можно посмотреть исходный код на гитхабе.
  • Так же советуем почитать статью о том, как можно с помощью одного простого действия значительно ускорить ваши тесты.
  • Тот же метод, только с другой реализацией.
  • Хороший обзор что лучше, явные или неявные ожидания (спойлер: плохи и те, и те - используйте селенидовские)
  • Вечно полезная статья как прочитать много данных с веб-страницы? (спойлер: через JavaScript)