최근 Browser Migration을 할 일이 잦다.
Conversion Tool로 초반 작업을 하고난 이후에
download 부분이나 alert 관련 부분이 남는데, 그러면서 메세지 타입을 갈무리 해봤다
1. alert, confirm
- 보통 대부분의 IE와 Chrome 웹 페이지 메시지는 이렇게 뜬다.
- IE에서 ctrlId = 65535
- Type1은 Browser Console창에서 Alert("메세지")로 띄울 수 있고, Type2는 업로드나 다운로드 위치 같은 걸 틀려보자.
- Type1(IE는 Win32 라이브러리 느낌으로 뜨고, Chrome은 크롬 위젯 Alert로 뜸)
<IE의 Alert> : 정보가 부족해 보이지만 잘 가져온다.
<wnd app='iexplore.exe' cls='#32770' />
<wnd ctrlid='65535' aaname='*' />
<Chrome의 Alert> : 굉장히 지저분해 보이지만 role을 Text로 잡으면 빈값을 가져오거나 한줄만 가져온다.
<wnd app='chrome.exe' cls='Chrome_WidgetWin_1' />
<ctrl name='*내용:' role='dialog' />
<ctrl role='pane' idx='1' />
<ctrl role='pane' idx='1' />
<ctrl role='pane' idx='1' />
<ctrl role='pane' idx='1' />
<ctrl role='pane' idx='1' />
<ctrl role='pane' idx='1' />
<ctrl role='pane' idx='1' />
<ctrl role='pane' />
* 테스트 해보니 이렇게 하면 인식 자체가 안 되는 케이스도 존재했다.
<wnd app='chrome.exe' cls='Chrome_WidgetWin_1' title='*Chrome' />
<ctrl name='*내용:' role='dialog' />
<ctrl role='text' />
=> 안 될 때는 이 방법으로도 시도
- Type2(IE와 크롬 모두 Win32 라이브러리 느낌으로 뜸)
<IE, Chrome 공통> : 보통 파일 업로드, 다운로드 등에서 에러났을 때 cls가 DirectUIHWND로 뜨는 타입이다.
<wnd app='*.exe' cls='#32770' title='*' />
<wnd aaname='*' cls='DirectUIHWND' />
<ctrl name='*' role='pane' />
<ctrl name='*' role='text' />
2. prompt
- 자주 쓰이진 않지만 prompt를 잡아야 하는 경우도 있다.
- 여기서도 IE, Chrome은 각자 다른 라이브러리를 쓰는 것으로 보인다.
<IE의 경우> : ctrlid가 확실하게 나뉜다.
<wnd app='iexplore.exe' cls='#32770' title='*' />
<wnd ctrlid='8132' /> [텍스트]
<wnd app='iexplore.exe' cls='#32770' title='*' />
<wnd ctrlid='8133' /> [입력창]
<Chrome의 경우> : 텍스트를 얻으려면 이것의 Name 속성을 가져와야 한다. 입력칸은 바로 Type Into하면 된다.
<wnd app='chrome.exe' cls='Chrome_WidgetWin_1'/>
<ctrl role='dialog' />
<ctrl role='editable text' />
이외 확인, 취소 버튼도 비슷하게 잡아주면 된다. [버튼이라 더 잘 구분되기 때문에 이보다 잡기 쉽다.]
** title 속성은 취향인 거 같다. 보통 넣지 않아도 잡힌다.
'RPA 종합' 카테고리의 다른 글
[Uipath] Try Catch와 Exception에서 자주 헷갈리는 케이스 (0) | 2022.06.23 |
---|---|
RPA 기본 과제 정의 관련[현업 제공 파일] (0) | 2022.06.03 |
ROI 측정을 위한 항목 및 점수 (0) | 2022.05.27 |
[Open Browser] 특정 주소로 웹을 오픈하고 싶을 때 (0) | 2022.05.25 |
[MS Edge] IE Mode가 정책상 막혀있는 경우 (0) | 2022.05.20 |