В тестировании веб-приложений с использованием Protractor управление
размером и состоянием окна браузера играет важную роль. Это особенно
актуально для проверки адаптивного дизайна, тестов на разных разрешениях
экранов и симуляции поведения пользователей с различными устройствами.
Protractor предоставляет встроенные методы для изменения размеров окна и
его максимизации: maximizeWindow() и
resizeWindow().
maximizeWindow()Метод maximizeWindow() используется для развертывания
окна браузера на весь экран. Это гарантирует, что тестируемое приложение
будет отображаться в максимально возможной области просмотра, что важно
для проверки элементов интерфейса, которые могут скрываться на маленьких
экранах.
Синтаксис:
browser.driver.manage().window().maximize();
Особенности применения:
Пример использования:
describe('Тестирование maximizeWindow', () => {
it('Разворачивает окно браузера', async () => {
await browser.get('https://example.com');
await browser.driver.manage().window().maximize();
const size = await browser.driver.manage().window().getSize();
console.log(`Ширина: ${size.width}, Высота: ${size.height}`);
});
});
В этом примере после вызова maximize() выводятся текущие
размеры окна, что позволяет убедиться, что окно действительно развёрнуто
на весь экран.
resizeWindow()Метод resizeWindow() используется для установки окна
браузера в определённый размер. Он необходим для тестирования
интерфейсов при различных разрешениях экрана, например, для эмуляции
мобильных устройств или планшетов.
Синтаксис:
browser.driver.manage().window().setSize(width, height);
Параметры:
width — ширина окна в пикселях.height — высота окна в пикселях.Особенности применения:
Пример использования:
describe('Тестирование resizeWindow', () => {
it('Изменяет размер окна на 800x600', async () => {
await browser.get('https://example.com');
await browser.driver.manage().window().setSize(800, 600);
const size = await browser.driver.manage().window().getSize();
console.log(`Ширина: ${size.width}, Высота: ${size.height}`);
});
});
В этом примере окно браузера устанавливается в размер 800 на 600 пикселей, после чего выводятся его текущие размеры для проверки.
В сложных тестовых сценариях полезно комбинировать
maximizeWindow() и resizeWindow(). Например,
можно сначала развернуть окно для выполнения действий, требующих полной
видимости интерфейса, а затем уменьшить его для тестирования адаптивных
элементов.
Пример комбинированного использования:
describe('Комбинированное управление окном', () => {
it('Максимизация и изменение размера окна', async () => {
await browser.get('https://example.com');
// Разворачиваем окно на полный экран
await browser.driver.manage().window().maximize();
let size = await browser.driver.manage().window().getSize();
console.log(`Максимизировано: Ширина: ${size.width}, Высота: ${size.height}`);
// Изменяем размер окна для эмуляции планшета
await browser.driver.manage().window().setSize(1024, 768);
size = await browser.driver.manage().window().getSize();
console.log(`Эмуляция планшета: Ширина: ${size.width}, Высота: ${size.height}`);
});
});
maximizeWindow() при запуске тестов на
десктопных разрешениях, чтобы избежать скрытия элементов.resizeWindow() с различными размерами.getSize() после изменения,
чтобы убедиться в корректности установки.maximizeWindow() — разворачивает окно на весь экран,
упрощает взаимодействие с элементами интерфейса.resizeWindow(width, height) — устанавливает точный
размер окна, подходит для тестирования адаптивного дизайна.Оба метода являются частью API Protractor и взаимодействуют напрямую с управлением окном браузера через WebDriver. Их использование повышает надёжность и универсальность автоматизированных тестов.