Protractor предоставляет обширный инструментарий для взаимодействия с
браузером и получения информации о его состоянии. Основной объект для
управления браузером и выполнения команд — это глобальный объект
browser. Он используется для навигации, управления окнами,
получения данных о текущем состоянии браузера и настройки параметров
выполнения тестов.
browserbrowser.getCurrentUrl() Возвращает
текущий URL страницы в виде промиса. Используется для проверки переходов
между страницами или для валидации текущего маршрута. Пример
использования:browser.getCurrentUrl().then(function(url) {
console.log('Текущий URL:', url);
});
browser.getTitle() Позволяет получить
заголовок страницы (<title>). Часто используется для
проверок загрузки нужной страницы.browser.getTitle().then(function(title) {
console.log('Заголовок страницы:', title);
});
browser.getCurrentUrl() vs
browser.getTitle() getCurrentUrl()
возвращает полный URL, тогда как getTitle() возвращает
только текст заголовка страницы. Оба метода возвращают промисы, поэтому
их результаты следует обрабатывать через then или с
использованием async/await.browser.manage().window().getSize()
Метод возвращает объект с текущей шириной и высотой окна:browser.manage().window().getSize().then(function(size) {
console.log('Ширина:', size.width);
console.log('Высота:', size.height);
});
browser.manage().window().setSize(width, height)
Позволяет программно изменять размеры окна браузера, что удобно при
тестировании адаптивного дизайна.browser.manage().window().setSize(1280, 800);
browser.manage().window().maximize()
Максимизация окна до доступного разрешения экрана. Используется для
того, чтобы избежать проблем с невидимыми элементами на маленьком
экране.browser.getCapabilities() Метод
возвращает объект с набором возможностей браузера. Позволяет узнать тип
браузера, версию, платформу и другие характеристики. Пример получения
информации:browser.getCapabilities().then(function(caps) {
console.log('Браузер:', caps.get('browserName'));
console.log('Версия:', caps.get('version') || caps.get('browserVersion'));
console.log('Платформа:', caps.get('platform') || caps.get('platformName'));
});
caps зависят от используемого
браузера и драйвера, но стандартными являются: browserName,
version, platform, platformName,
acceptSslCerts.async/await для упрощения кодаСовременные версии Protractor поддерживают использование
async/await, что делает код более читаемым и
последовательным:
(async function() {
const title = await browser.getTitle();
console.log('Заголовок страницы:', title);
const url = await browser.getCurrentUrl();
console.log('Текущий URL:', url);
const size = await browser.manage().window().getSize();
console.log('Размер окна:', size.width, 'x', size.height);
const caps = await browser.getCapabilities();
console.log('Браузер:', caps.get('browserName'));
})();
Использование async/await устраняет необходимость в
цепочках промисов и делает обработку информации о браузере интуитивно
понятной.
Для вывода данных о браузере можно использовать стандартный
console.log, но в рамках автоматизированного тестирования
часто применяется встроенный логгер Protractor или сторонние библиотеки
логирования для структурированного вывода. Это особенно важно при работе
с CI/CD, где результаты тестов должны быть читаемы и удобно
анализируемы.
getCapabilities(), может
различаться в зависимости от браузера. Например, Chrome и Firefox
используют разные ключи для версии и платформы.browser.getTitle() и
browser.getCurrentUrl() в await или
then, чтобы гарантировать получение актуальных данных.browser.getCapabilities() для определения
браузера и платформы, что позволяет условно запускать тесты только для
поддерживаемых конфигураций.Эти методы формируют базовый набор инструментов для получения информации о браузере и его состоянии в процессе тестирования с Protractor, позволяя строить надежные проверки и адаптивные сценарии тестирования.