ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [UiPath 기초] 3. 디버그(Debug) - 1
    UiPath RPA/개념 및 기초다지기 2019. 12. 22. 16:15
    반응형

    이번시간엔 "디버그(Debug)"를 익혀보도록 하겠습니다. 

     

    디버그란 개발한 결과물이 정상적으로 동작하는지 여부를 확인하거나, 예상치 못한 오류(Exception)가 발생했을 경우, 원인을 찾아 해결하고 결과물이 원하는 작업을 수행할 수 있게끔 정상화시키는 것을 의미합니다.

    "F5" 키를 눌러 개발결과를 살펴보았을때 UiPath Studio의 화면이 약간 달라지는것을 눈치채셨을 것입니다.

     

    디버그 상태에서의 UiPath Studio 모습

    해당화면이 디버그화면이며, 이번 파트 포함해 향후 진행될 예제 및 실전에서 많이 다루게 될 것 입니다. 이번 파트를 다루기 위한 예제를 직접 개발하는 것까지 함께 포함하면 내용이 매우 방대해 질수 있으므로, 예제를 다운로드 받은 뒤 진행해주시기 바랍니다.

     

    3_디버그.zip
    0.66MB

     

    * 예제개발에 사용한 Studio 버전은 2019.10.2 입니다. 따라서 해당버전보다 낮은 Studio 버전을 사용할 경우 동작하지 않을 수 있습니다.

     

    제공드린 예제는 네이버, 다음, 구글에 각각 UiPath를 검색하여 표시되는 블로그 검색결과의 이름과 URL을 csv 파일로 저장하는 *웹 크롤러(Web Crawler) 입니다. 검색결과는 최대 100개까지만 가져오며, 구글은 별도의 블로그 검색기능이 따로 없어 일반 웹사이트로 추출하였습니다.

     

    웹 크롤러가 무엇인지 궁금하신 분들은 아래 사이트에서 참조해주세요.

    https://ko.wikipedia.org/wiki/%EC%9B%B9_%ED%81%AC%EB%A1%A4%EB%9F%AC

     

    웹 크롤러 - 위키백과, 우리 모두의 백과사전

    위키백과, 우리 모두의 백과사전. 검색 엔진에 대해서는 웹크롤러 문서를 참조하십시오. 웹 크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이다. 웹 크롤러가 하는 작업을 '웹 크롤링'(web crawling) 혹은 '스파이더링'(spidering)이라 부른다. 검색 엔진과 같은 여러 사이트에서는 데이터의 최신 상태 유지를 위해 웹 크롤링한다. 웹 크롤러는 대체로 방문한 사이트의 모든 페이지의 복사본을 생

    ko.wikipedia.org

    예제를 열어보시면 꽤나 생소한 액티비티들이 많이 보이실 것입니다. 아무 설명없이 진행하면 어려울 수 있으므로 간략하게 다루겠습니다.

     

    1. Invoke workflow

    Invoke workflow는 프로젝트내 만들어진 다른 워크플로우를 호출할때 사용합니다. 워크플로우라는 단어가 생소할 수 있겠지만, Main.xaml 이라면 자주 보셨을테니 친숙할 것입니다. 프로젝트 생성시마다, 기본적으로 생성되는 Main.xaml 이 워크플로우입니다. 예제에서는 Main 외 "Naver_검색", "Daum_검색", "Google_검색" 3개의 워크플로우가 존재하며, Main에서 Invoke workflow 액티비티를 통해 각각 순차적으로 호출하여 작업을 처리합니다.

     

    3개의 Invoke workflow

    2. Open Browser

    입력한 URL 주소에 맞는 웹 사이트를 엽니다. 웹 브라우저는 기본적으로 Internet Explorer를 사용하며, 확장기능을 설치하여 다른 브라우저를 사용할 수 있습니다. 생성시 기본적으로 "Do" 라는 이름의 자식 시퀀스가 생성되며, 사이트 조작에 필요한 액티비티들(Set Text, Click 등)이 배치됩니다.

     

    Open Browser 액티비티

    3. Set Text

    셀렉터(Selector)를 통해 지정한 엘리먼트(Element)에 문자열을 입력하는 액티비티입니다. 1. HelloWorld 시간에 다뤘던 Type Info 액티비티는 마치 사용자가 직접 타이핑(Typing)하듯 문자열을 입력했다면, Set Text는 지정된 문자열을 마치 Ctrl+v 하듯 붙여 넣듯이, 지정한 엘리먼트에 세팅해줍니다. (물론 진짜 Ctrl+v 하듯 동작하진 않습니다. 😙)

     

    검색어 입력란 Element를 대상(Target)으로 한 Set Text 액티비티

    셀렉터는 엘리먼트를 선택할 때 사용하는 기능이자 개념입니다. 이는 다음 시간에 다루도록 하겠습니다.

    엘리먼트는 버튼, 문자입력란(Input Box)등 웹사이트 및 프로그램을 구성하는 UI 객체를 통칭하는 단어입니다.

     

    4. Delay

    Delay는 액티비티에서 다음 액티비티로 진행할때 대기시간이 필요할 경우 설정하는 액티비티입니다. 이번 예제에선 웹사이트에서 검색 후 결과를 가져오는 작업을 수행하는데, 인터넷 연결상태가 좋지 않은 경우, 검색 후 다음 작업을 진행할때까지 결과페이지가 제대로 표시되지 않아 오류가 날 수 있습니다. 이를 방지하고자 추가한 액티비티입니다.

    대기시간은 속성창에서 설정가능하며, 예제에 있는 모든 Delay 시간은 00:00:02로 설정하였습니다.

     

    5. Attach Browser

    열려있는 브라우저들 중, 셀렉터 조건에 맞는 브라우저에 연결하여, 해당 앨리먼트를 다루는 작업을 수행할때 사용하는 액티비티입니다. 예제에선 블로그 리스트에 대한 Data Scraping 작업을 위해 생성된 액티비티입니다.

     

     

    6. Extract Structured Data

    연속적으로 나열된 데이터를 수집할 때 사용하는 액티비티입니다. 보통 해당 액티비티를 직접 호출하여 사용하진 않으며, 상단 리본메뉴의 [디자인] -> [데이터 스크래핑] 기능을 통해 생성합니다. 해당 액티비티 및 추출 기능은 별도 포스트에서 상세히 다루겠습니다.

     

     

    7. Close Application

    프로그램을 닫을 때 사용하는 액티비티입니다. 부모 액티비티가 특정 프로그램에 연결(Attach)되어 있거나, 조작하고 있다면, 별도의 셀렉터 없이도 종료할 프로그램이 무엇인지 인지하고 종료시킵니다. 현재 예제에서는 Attact Browser 안에 있는 자식 액티비티이므로, Attact Browser가 연결하고 있는 브라우저를 종료시키게 됩니다.

     

    8. Path Exists

    컴퓨터의 해당 경로(Path)에 파일이나 디렉토리가 존재하는지 유무를 확인합니다. 있다면 설정한 출력(Output)의 bool 변수에 True를, 없다면 False 값을 설정합니다. 경로는 절대경로, 상대경로 모두 사용가능하며, 예제에서는 프로젝트 폴더내 작업결과를 생성하므로, 절대경로를 입력하지 않고, 파일명만 입력했습니다.

     

    * 실제 개발 및 배포시에는 가급적 절대 경로를 입력하시기 바랍니다. 개발시에는 큰 문제 없으나, 배포후 오케스트레이터에서 실행하면 엉뚱한 위치에 파일을 생성하거나 참조할 수 있습니다.


    절대경로와 상대경로에 대한 개념이 이해되지 않으신다면, 아래 사이트에서 확인해주시기 바랍니다.

    https://mommoo.tistory.com/82

     

    절대경로, 상대경로란?

    안녕하세요. 프로그래밍을 하다보면, 경로에 관한 것을 처리하곤 합니다. 이때 어떤 API는 절대 경로 로 처리를, 또 다른 API는 상대 경로 로 처리를 하곤 합니다. 절대 경로 , 상대 경로 의 개념이 확실하지 않..

    mommoo.tistory.com

    9. IF

    If는 입력받은 조건이 참이면, Then 내부에 있는 액티비티들을 실행시키고, 거짓이면 Else 내부에 있는 액티비티들을 실행시키는 액티비티입니다. 해당 예제에선 동일한 이름의 csv 파일이 있을 경우 삭제하기위해 사용했습니다.

     

     

    10. Delete

    파일삭제를 위한 액티비티입니다.

     

    실행 후엔 아래와 같은 결과물이 생성됩니다.

    결과물 (다음)

    다음시간에 본격적으로 디버깅 기능을 사용해보겠습니다.

    반응형

    댓글

Designed by Tistory.