PageObject
Generics
Опубликовано Pnevmoslon в 08.05.2012Всем привет.
Работаю над автоматизацией тестирования веб-магазина(Java, WebDriver, PageObject) и столкнулся со следующей проблемой:
Периодически необходимо возвращать одним методом разные page object'ы. Например, клик по кнопке "Buy" должен возвращать page object страницы CheckOutPage в случае, если юзер авторизован или же страницу SignInPage, если он не авторизован.
Каким образом реализуются такие методы в Java? Я так понимаю необходимо использовать generics, но как-то ничего не получается.
Пока что довольствуюсь следующим:
Видео: автоматическая генерация PageObjects c помощью WebDriver
Опубликовано polusok в 07.05.2012»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Оправдано ли использование PageObject паттерна
Опубликовано Shaman в 28.03.2012В последнее время просматривал свои тесты и пришел к выводу что они немного неэстетичны. решил порефакторить. Полистал информацию по PageObject паттерну, с виду все понравилось. попробовал написать небольшой пробный каркас. Написал - понравился вид кода. теперь сижу и думаю, стоит ли строить новый фреймворк и переводить 2-3 десятка тестов под него, учитывая то что разработка фреймворка займет несколько недель.
из плюсов вижу: удобночитаемый и удобноподдерживаемый код, рефакторинг существующих тестов(немного набрался опыта и имею новое видение структуры).
Оправдано ли использование PageObject паттерна
Опубликовано Shaman в 28.03.2012В последнее время просматривал свои тесты и пришел к выводу что они немного неэстетичны. решил порефакторить. Полистал информацию по PageObject паттерну, с виду все понравилось. попробовал написать небольшой пробный каркас. Написал - понравился вид кода. теперь сижу и думаю, стоит ли строить новый фреймворк и переводить 2-3 десятка тестов под него, учитывая то что разработка фреймворка займет несколько недель.
из плюсов вижу: удобночитаемый и удобноподдерживаемый код, рефакторинг существующих тестов(немного набрался опыта и имею новое видение структуры).
WebDriver: Основные команды
Опубликовано Uladzimir Kryvenka в 07.02.2012В данной заметке я хочу привести описание и примеры основных (на мой взгляд) команд в Selenium 2.0 WebDriver для автоматизации функционального тестирования web-приложений. В данной заметке я рассказывал, что собой представляет WebDriver. А в данной заметке можно посмотреть пример простейшего тестового сценария на WebDriver и основную вводную информацию про данный инструмент автоматизированного тестирования. Примеры будут представлены на C# Driver, версия библиотек – 2.9.0.
Доступ к основным функциям WebDriver предоставляет одноименная сборка WebDriver. Интерфейс IWebDriver
является базовым классом, его методы можно разделить на три категории:
Control of the browser (OpenQA.Selenium.IWebElement) – методы для
работы с элементами страницы, Key properties and methods
(OpenQA.Selenium.IWebDriver.Url) – методы для навигации, установки
параметров и т.д., и другие вспомогательные методы (например
OpenQA.Selenium.ISearchContext.FindElement). Непосредственно за работу с
элементами страницы отвечает интерфейс IWebElement. Так как в WebDriver каждый браузер имеет свой драйвер (список поддерживаемых драйверов), то для каждого драйвера предполагается наличие собственной реализации WebElement. Например, ChromeWebElement для Chrome, FirefoxWebElement
для FF и т.д. То есть для каждого поддерживаемого браузера предусмотрен
свой нативный интерфейс. Также в WebDriver есть HtmlUnitDriver –
кроссплатформенный виртуальный браузер. Примерчики инициализации:
Объявляем драйвер:
IWebDriver driver = new DriverName();
driver.<user hits space>Поиск элемента:
IWebElement element = driver.findElement(By.id("some_id"));В новой версии Selenium организован улучшенный механизм поиска элементов
страницы. Перед обращением к элементу страницу необходимо сперва
вызвать метод поиска с указанием типа локатора. Также есть метод для
поиска группы элементов findElements (By by).
В WebDriver доступна работа со следующими типами локаторов: id, name,
xpath, tagName, className, cssSelector, linkText, partionalLinkText.
Пример инициализации и поиска элемента с использованием разных типов
локаторов:
IWebElement element;
element = driver.FindElement(By.Id("LoginControl_LoginButton"));
element = driver.FindElement(By.Name("LoginControl$LoginButton"));
element = driver.FindElement(By.XPath("//tr/td[3]/input[@id='LoginControl_LoginButton']"));Как и в Selenium 1.0, в Selenium WebDriver можно выделить три типа основных команд:
- Действия - функциональное действие над элементами веб-страницы или браузером. Например, заполнение полей, нажатие на кнопку и другие;
- Проверки - выполнение проверок на тестируемой странице. Например, проверка того, что определенное поле формы имеет указанное значение, или проверка заголовка окна и т.д.;
- Ожидания - организация ожидания наступления определенных событий на странице или со страницей (например, ожидание загрузки страницы или ожидание загрузки ajax запросов, появление на странице определенного элемента и т.д.).
Команды навигации. За навигацию отвечает класс Navigate.
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Видео: PageObjects паттерн для ваших тестов (Adam Goucher)
Опубликовано polusok в 25.08.2011
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее







