Что это
Desired Capabilities («желаемые возможности») — это класс, используемый для установки свойств браузера перед его вызовом. Это, например, имя браузера, операционная система, версия браузера и т. д. Это набор пар ключ-значение, которые используются для настройки параметров браузера. В основном Desired Capabilities позволяют гибче управлять браузером при автоматизации.
Примеры
- Browser Name: Какой браузер запускать (Chrome, Firefox и т.д.)
- Version: Версия браузера.
- Platform: Операционная система, в которой будет выполняться тест.
- Screen: То есть разрешение окна браузера.
- JavaScript: Включить или отключить JavaScript в браузере.
Важность
Desired Capabilities позволяют:
- Контролировать поведение браузера: Подстраивать среду браузера под конкретные требования в процессе.
- Кроссбраузерное тестирование: Проводить тестирование в различных версиях браузеров (проверка совместимости).
- Удаленное тестирование: Запуск тестов на удаленных машинах или облачных сервисах (типа Selenium Grid или BrowserStack). Desired Capabilities необходимы для передачи информации об особенностях тестового окружения.
Настройка (Java)
Конфигурация следующая:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.chrome.ChromeOptions; public class DesiredCapabilitiesExample { public static void main(String[] args) { // Create an instance of DesiredCapabilities DesiredCapabilities capabilities = new DesiredCapabilities(); // Set desired capabilities capabilities.setCapability("browserName", "chrome"); capabilities.setCapability("version", "92.0"); capabilities.setCapability("platform", "WINDOWS"); capabilities.setCapability("screenResolution", "1920x1080"); // Additional options using ChromeOptions ChromeOptions options = new ChromeOptions(); options.addArguments("--start-maximized"); // Maximize the browser window options.addArguments("--disable-infobars"); // Disable the info bars capabilities.setCapability(ChromeOptions.CAPABILITY, options); // Initialize the WebDriver with the desired capabilities WebDriver driver = new ChromeDriver(capabilities); // Open a website driver.get("https://www.google.com"); // Testing logic here // Close the browser driver.quit(); } }
Объяснение по пунктам
Комментарии в коде выше:
- DesiredCapabilities Instance: Создается экземпляр DesiredCapabilities для установки этих параметров.
- Setting Capabilities: Устанавливаются нужные в данном случае возможности, включая имя браузера, версия, платформа, и разрешение экрана.
- ChromeOptions: Дополнительные опции, специфичные для Chrome.
- WebDriver Initialization: Драйвер ChromeDriver инициализируется с указанными здесь возможностями.
- Running the Test: Браузер переходит на указанный URL-адрес, и выполняет действия.
- Closing the Browser: Сессия браузера завершается.
Пример использования
Чаще всего это запуск тестов на удаленном сервере — прописываются настройки браузера и окружения.
// Example for Remote WebDriver URL url = new URL("http://localhost:4444/wd/hub"); RemoteWebDriver driver = new RemoteWebDriver(url, capabilities);