UIPath Academy : 006-2. UI Automation With the Classic Experience

jwKim·2023년 10월 7일
0

🤖 UIPath

목록 보기
10/16

1. Selection Option Screen in the Modern Design Experience

1-1. Input Methods and Activities

Input method는 기본적으로 Hardware events로 설정되어있고, 다른 method를 사용하려면 액티비티 속성창에서 변경하면 된다. 아래는 Input method의 주요 특징이다.

  1. Hardware Events
    작동 방식 : 마우스와 키보드 입력 모두 사람이 하는 것과 동일하게 동작
    장점 : 모든 어플리케이션과 호환,'Enter'나 'Tab' 같은 특수키 지원 o
    단점 : 백그라운드에서 동작 x, 사용자는 자동화 동작 중 컴퓨터 사용 x, , UI 엘리먼트에 이미 텍스트가 있다면 자동으로 지우고 입력 x

  2. Send Window Messages
    작동 방식 : 마우스나 키보드를 사용할 때 window system에서 생성되는 window message를 받아서 어플리케이션에 입력, 클릭과 타이핑이 즉각적으로 됨
    장점 : 백그라운드에서 동작 o, 사용자는 자동화 동작 중 컴퓨터 사용 o, 'Enter'나 'Tab' 같은 특수키 지원 o
    단점 : 모든 어플리케이션이 이 옵션을 제공하는 것은 아님, UI 엘리먼트에 이미 텍스트가 있다면 자동으로 지우고 입력 x

  3. Simulate
    작동 방식 : 어플리케이션에 API 수준에서 입력을 보냄, 수행 속도가 가장 빠름 / 클릭과 타이핑이 즉각적으로 됨
    장점 : 백그라운드에서 동작 o, 사용자는 자동화 동작 중 컴퓨터 사용 o, UI 엘리먼트에 이미 텍스트가 있다면 자동으로 지우고 입력 o
    단점 : API를 사용하는 것이기 때문에 단축키 사용 불가, 모든 어플리케이션이 이 옵션을 제공하는 것은 아님, 'Enter'나 'Tab' 같은 특수키 지원 x

UI 자동화를 할 때 어플리케이션에 어떤 값을 넣는 액티비티는 Click, Type Into, Send Hotckey, Hover가 있다.

Click, Type Into, Send HotKey의 주요 속성은 아래와 같다.(Hover는 그냥 마우스를 UI 엘리먼트 위로 올려놓는 것이므로 크게 신경 쓸 속성이 없음 / 나는 UIPath를 한국어 버전으로 사용하기 때문에 속성 이름은 한국어로 표기할 것임)

  1. Click
    커서동작유형 : 마우스 커서가 움직이는 방식 지정 - Instant와 Smooth가 있음
    키 한정자 : 마우스 클릭을 할 때 함께 누를 특수키 지정(alt, ctrl, shift 등)
    윈도우 메시지 전송(Bool) : 앞서 소개한 input method 중 SendWindowMessages 타입으로 변경
    클릭 시뮬레이트(Bool) : 앞서 소개한 input method 중 Simulate 타입으로 변경

  2. TypeInto
    활성화(Bool) : True로 되어있으면 지정한 UI 엘리먼트를 forground로 가져와 글씨를 입력하고, False로 되어있으면 현재 열려있는 윈도우에서 글씨를 입력함 / default가 True / (입력할 때 창을 띄울건지 안띄울건지 제어하는 것인가봄)
    비활성화된 경우 변경(Bool) : 지정한 UI 엘리먼트가 비활성화 되어도 실행이 가능
    입력 전 클릭(Bool) : 지정한 UI 엘리먼트에 글씨를 입력하기 전 클릭함
    키 간 지연 : 입력하는 키 사이에 얼마나 시간 간격을 둘지 지정(밀리초)
    빈 필드 : 입력하기 전 UI 엘리먼트에 있는 글씨를 다 삭제
    윈도우 메시지 전송(Bool) : 앞서 소개한 input method 중 SendWindowMessages 타입으로 변경
    클릭 시뮬레이트(Bool) : 앞서 소개한 input method 중 Simulate 타입으로 변경

  3. Send HotKey
    활성화(Bool) : Type Into와 동일
    입력 전 클릭(Bool) : Type Into와 동일
    키 간 지연 : Type Into와 동일
    키 한정자 : Click과 동일
    윈도우 메시지 전송(Bool) : 앞서 소개한 input method 중 SendWindowMessages 타입으로 변경
    클릭 시뮬레이트(Bool) : 앞서 소개한 input method 중 Simulate 타입으로 변경

그리고 모든 input 액티비티는 작업 앞 뒤로 대기 시간을 설정할 수 있다.

1-2. Output Methods and Activities

Output method에는 FullText, Native, OCR 방식이 있다. 각 방식의 특징은 아래와 같다.

Output MethodFull TextNativeOCR
호환성대부분의 경우 사용 가능, default 임Grapgics Design Interface(GDI)를 사용하는 어플리케이션에만 사용 가능텍스트가 이미지로 되어있는 경우에만 사용 가능
자동화 속도가장 빠름Full Text 보다는 느림가장 느림
정확도100%100%상황에 따라 다름
백그라운드에서 실행 가능 여부OXX
숨겨진 텍스트에 대한 작업 여부OXX
가상환경에서 사용 가능 여부XXO
기타"숨겨진 메시지 무시" 옵션을 제공default로 모든 문자(콤마, 따옴표, 공백 등도 포함)를 처리할 수 있지만, 원하는 문자만 지정해서 추출 가능OCR 엔진으로는 두 개가 있음

앞서 Input 액티비티에 Input method를 지정하는 방법을 봤다. Input 액티비티는 각 액티비티마다 method를 따로 지정할 수 있었지만, Output 액티비티는 각 액티비티마다 method가 정해져있다. 그리고 method는 액티비티 이름에서 대체로 알 수 있다.(예를 들어 Get OCR Text 액티비티는 OCR method를 사용함)

아래는 주요 Output 액티비티들이다.

  1. Get Text
    UI 엘리먼트에서 String 값을 추출

  2. Get Full Text
    Full Text method로 UI 엘리먼트 값 추출(숨겨진 텍스트도 기본적으로 추출), 컨테이너가 자동으로 생성됨

  3. Get Visible Text
    Native method로 UI 엘리먼트 값 추출, 컨테이너가 자동으로 생성됨

  4. Get OCR Text
    OCR method로 UI 엘리먼트 값 추출, 컨테이너가 자동으로 생성됨, UIPath Screen OCR 엔진 사용

  5. Data Scraping Wizrd
    어플리케이션, 브라우저, 문서 등에서 테이블 데이터를 추출, UIPath 기본 기능이며 디자인 > 스크래핑 > 데이터 스크래핑 메뉴에서 사용 가능

  6. Extract Attributes
    텍스트를 추출하지 않고 UI 엘리먼트의 속성값(색상, 폰트 등)을 추출하고 싶을 때 사용하는 액티비티, Get Ancestor/Get Attribute/Get Position 옵션이 있음

1-3. UI Element Synchronization

UI 엘리먼트 동기화는 복잡한 상황에서도 자동화를 구현할 수 있게 지원하는 것이다.

우선, UI 자동화에서 입력/출력 과정은 UI 엘리먼트 인식, 데이터 입력/출력 두 단계로 나눠진다. 지금까지의 실습에서는 UI 엘리먼트 인식 과정을 액티비티 내에서 하거나 지연시간을 줘서 해결할 수 있었다. 하지만 구현 해야하는 프로세스가 복잡해지면 이렇게 간단하게 해결할 수 없다. 그래서 UI 엘리먼트 인식과 데이터 입력/출력 과정을 나눠야 할 필요가 생긴다.

아래는 UI 엘리먼트를 찾기 위해 사용할 수 있는 액티비티들이다.(입력 출력은 1-1과 1-2에서 살펴봤음)

  1. Find Element
    지정한 UI 엘리먼트가 화면에 나타날 때까지 기다리고, 화면에 나타나면 UIElemnet 변수로 반환 / 반환된 UIElement 변수로 어떤 작업을 이어갈 때 유용함

  2. Element Exists
    지정한 UI 엘리먼트가 화면에 존재하는지 Boolean 값으로 반환, if문과 사용하면 좋음

  3. Wait Element Vanish
    지정한 UI 엘리먼트가 화면에서 사라질 때까지 대기

  4. On Element Appear
    UI 엘리먼트가 화면에 나타날 때까지 대기, 컨테이너가 자동으로 생성됨

  5. On Element Vanish
    UI 엘리먼트가 화면에서 사라질 때까지 대기, 컨테이너가 자동으로 생성됨

  6. Text Exsits
    텍스트가 지정된 UI 엘리먼트에 있는지 확인, OCR 기술을 사용해서 확인하는 버전이 있음

0개의 댓글