Большинство приложений имеют часто используемый функционал, например регистрация или вход на сайт. Для таких блоков функционала создаются отдельные методы, которые вызываются в тест-кейсе. Такая модульность предотвращает дублирование кода. Если в будущем функционал поменяется или разработчики изменят верстку, то нам не прийдется изменять тест-кейс, а нужно будет изменить лишь методы.
Как же это сделать…
Обратим внимание на повторяющуюся операцию входа на сайт. Выделим отдельный метод для входа.
1) Создадим “New Package” и назовем его “userAction”, путем выбора контекстного меню проекта: New > Package.



2) Создадим “New Class” в пакете “userAction” и назовем его “SignIn”.


3) Теперь создадим public static метод и назовем его “Execute”. Выполним следующие операции в нем:
Загрузку страницы входа Facebook
Ввод Username
Ввод Password
Нажатие кнопки Submit (Вход)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
package com.selenium.userAction; import org.openqa.selenium.WebDriver; import com.selenium.pageObject.LoginPage; public class SignIn { /** * @param driver * @param username * @param password * execute login to facebook */ public static void Execute(WebDriver driver , String username, String password) { LoginPage.loadPage(driver); LoginPage.txtbx_UserName(driver).sendKeys(username); LoginPage.txtbx_Password(driver).sendKeys(password); LoginPage.btn_LogIn(driver).click(); } } |
4) Теперь создадим новый класс “PostStatus” в том эе пакете “userAction”.


5) Создадим статический метод Execute и выполним следующие операции в нем:
Ввод сообщения
Нажмем Post (Опубликовать).
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package com.selenium.userAction; import org.openqa.selenium.WebDriver; import com.selenium.pageObject.HomePage; public class PostStatus { /** * @param driver * @param status * execute post status in facebook */ public static void Execute(WebDriver driver, String status){ HomePage.txt_status(driver).sendKeys(status); HomePage.butt_post(driver).click(); } } |