В автоматизированном тестировании веб-приложений с помощью Protractor управление ориентацией экрана особенно актуально при тестировании адаптивного дизайна и приложений под мобильные браузеры. Protractor как инструмент, построенный на WebDriverJS, позволяет взаимодействовать с браузером на уровне команд Selenium, включая управление размером и ориентацией окна, что критически важно для проверки корректного отображения элементов в различных условиях.
В Protractor изменение ориентации экрана обычно осуществляется через
изменение размеров окна браузера. Это достигается методом
browser.manage().window().setSize(width, height).
// Пример установки размеров окна для ландшафтного режима
browser.manage().window().setSize(1024, 768);
// Пример установки размеров окна для портретного режима
browser.manage().window().setSize(768, 1024);
Ключевые моменты:
Для тестирования веб-приложений под мобильные устройства в Protractor
используется комбинация Chrome DevTools Protocol через
chromeOptions. Это позволяет эмулировать конкретные
устройства с заданной ориентацией экрана.
exports.config = {
capabilities: {
browserName: 'chrome',
chromeOptions: {
mobileEmulation: {
deviceName: 'iPhone X'
}
}
}
};
Смена ориентации на мобильном устройстве:
Эмуляция поддерживает смену ориентации через метод
setOrientation WebDriver. Пример:
browser.driver.executeScript('window.screen.orientation.lock("landscape");');
browser.driver.executeScript('window.screen.orientation.lock("portrait");');
Особенности:
screen.orientation. В таких случаях изменения ориентации
можно реализовать через смену размеров окна.После изменения ориентации важно убедиться, что элементы интерфейса корректно располагаются и остаются доступными. Для этого применяются стандартные методы поиска элементов:
let menuButton = element(by.id('menu-button'));
expect(menuButton.isDisplayed()).toBe(true);
let header = element(by.css('header'));
expect(header.getCssValue('height')).toBe('60px');
Рекомендации:
ExpectedConditions) для
элементов, которые могут изменять расположение после смены
ориентации.getLocation() и getSize():menuButton.getLocation().then(loc => console.log(loc));
menuButton.getSize().then(size => console.log(size));
Protractor позволяет организовать тесты, которые проверяют корректность интерфейса при различных ориентациях:
describe('Адаптивный дизайн', function() {
it('должен корректно отображать меню в портретной ориентации', function() {
browser.manage().window().setSize(768, 1024);
let menu = element(by.id('menu'));
expect(menu.isDisplayed()).toBe(true);
});
it('должен корректно отображать меню в ландшафтной ориентации', function() {
browser.manage().window().setSize(1024, 768);
let menu = element(by.id('menu'));
expect(menu.isDisplayed()).toBe(true);
});
});
Важные моменты:
browser.driver.manage().window() — основной способ
контроля ориентации на десктопах.chromeOptions — оптимальный подход для проверки
мобильной версии.getSize() и
getLocation() — гарантирует точность отображения
интерфейса.screen.orientation.lock() — эффективный метод
смены ориентации на эмуляторах и современных браузерах.Умелое сочетание изменения размеров окна, эмуляции устройств и проверки расположения элементов обеспечивает комплексное тестирование интерфейсов под разные ориентации экрана, что повышает качество веб-приложений и позволяет выявлять скрытые ошибки адаптивного дизайна.