최근 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 속성은 취향인 거 같다. 보통 넣지 않아도 잡힌다.

+ Recent posts