클래스를 사용하여 객체인식 Selector를 관리하는 간단한 예제를 소개하도록 하겠습니다.
예제는 EP 사이트에 접속하여, 로그인을 수행하는 프로세스입니다. 로그인을 위해서는 아래의 3가지 단계를 수행해야 합니다.
로그인을 수행하기 위해서, 아래와 같이 "EP_LOGIN" 태스크를 생성 후, 이벤트 아이템을 사용하여 플로우를 작성하였습니다.
UI 객체 요소는 3가지(2개의 TextBox, 1개의 버튼)이지만, 실행을 위해서는 아래와 같이 UI를 연계할 수 있는 5개의 이벤트 아이템이 필요합니다.
UI 요소는 3개이지만, 수행을 위해서는 Selector Indicator를 5번 (Object Click 3번, KeyInput 2번) 수행해야 합니다.
해당 예제는 UI 3개이고, 복잡한 로직(반복, 조건 등)이 없어서 어려움이 없지만, 만약 그렇지 않다면 수정사항 반영 등 개발 및 유지보수 시 많은 시간이 필요할 것으로 보입니다.
그냥 UI 갯수 만큼만 Selector Indicator를 지정하고, 반복해서 사용할 수 있는 방법은 없을까요?
A.WORKS 는 Selector 값을 변수에 저장할 수 있는 방법을 제공합니다. 3개의 UI 요소를 Selector 변수에 지정하고, Selector 변수를 이벤트 아이템에 반영하여 사용합니다.
하지만, Selector를 변수로 관리를 하면 Task 가 관리하는 변수목록이 많아질 수 있습니다. UI 요소가 많을 경우, 동일하게 복잡성이 증가하고 유지보수가 쉽지 않을 것 같습니다.
그러면 관련 있는 UI 요소를 Class 내 Selector 변수들로 지정하여 관리하면 어떨까요?
해당 예제를 Class를 사용하여 개선을 해보도록 하겠습니다.
"LoginPage" 라는 클래스를 생성하여, UI 요소를 설정할 수 있는 3개의 Selector 변수를 생성하였습니다. 변수 이름은 각각 "userIdTextBox", "passwordTextBox", "loginButton"으로 설정하였습니다.
클래스 내 멤버변수를 클릭하면, 값을 설정할 수 있습니다. Indicator 버튼을 사용하여, UI 요소를 선택 및 설정하였습니다.
Task변수에 클래스 변수를 선언 후, 클래스 변수를 사용하여 이벤트 아이템 내 속성값을 반영하도록 하겠습니다.
나머지 이벤트 아이템에 대해서도 동일하게 설정을 반영하도록 하겠습니다.