랜덤으로 발생하는 레이어 팝업을 닫고 싶습니다

안녕하세요.

홈페이지에 접속을 해서 레이어 팝업을 닫은 후 로그인을 해야 하는데

첨부된 이미지처럼 레이어 팝업 갯수가 접속한 날에 따라 달라져서 (1개 ~3개)

애를 먹고 있습니다.

예를 들어 레이어 팝업이 1개라면 Click 액티비티로 그냥 넘어가면 되지만

제가 Element Exists를 잘 못 쓰고 있는건지

갯수가 랜덤으로 발생하는 레이어 팝업을 닫고 진행하고 싶습니다.

어떻게 하면 될까요? 고수 개발자분들의 도움 부탁드립니다.

안녕 @Moolog,

이를 수행하는 방법에는 여러 가지가 있습니다. 먼저 다음 중 하나를 시도 할 수 있습니다.

하나의 요소 존재 활동을 사용하고 홈페이지 요소를 찾을 수 있습니다. 홈페이지 요소가 나타나지 않는 한 클릭 한 번으로 창을 닫습니다 (팝업).

행복한 자동화! :slightly_smiling_face:

첨부된 이미지처럼 진행하면 Else 문으로 진행이 안되더라구요

요소가 존재하는 순서도를 사용하여 홈페이지의 특정 요소를 포함합니다.

요소가 존재하면 결정 활동을 사용하십시오.

요소가 존재하면 홈페이지에서 수행하고 싶은 다른 작업으로 흐름이 이동합니다.

그렇지 않으면 팝업 창의 닫기 버튼을 클릭하는 클릭 활동으로 흐름이 이동합니다. 이 클릭 활동은 홈페이지 요소가 나타나지 않는 한 루프로 작동하도록 최상위 요소 존재 활동과 연결됩니다.

이해가 잘 안되는 데 이미지로 보여주실 수 있을까요?

번역이 되서 구문이 이해 하기가 힘드네요.

이게 도움이 되길 바란다 :slightly_smiling_face:

image

로그인 입력 Text Input을 꼭 클릭해야하나요? 화면에 표시되는 팝업에 상관없이 Set Text나 Type into와 같은 액티비티로 해당 영역에 직접 ID / PW를 입력할 수 있습니다.
만약 클릭이 반드시 필요하다면 Click 액티비티 속성에 SimulateClick을 true로 설정해보세요.

로그인

네 Type info는 상관없는데 레이어 팝업창이 아이디 입력창을 가리더라구요

일단 이미지 첨부해 주신 것 감사합니다.

그러나 도움 주신 것 처럼 했더니 팝업창이 1개만 닫힙니다… :joy:

Type Into에 SimulateType을 True로 설정해보세요.
화면을 가리는 레이어팝업창을 무시하고, Simulate 을 true로 설정하면 로그인 될 것입니다.
그리고 가능하시다면 Type Into 보단 Set Text나 클립보드 복사 붙여넣기 조합으로 ID, PW 입력하는게 더 좋습니다. Type into는 오타가 은근 잘 나서요 ㅎㅎ;;

제가 드린 솔루션은 레이어팝업창을 닫는데 중점을 둔게 아니라, 팝업창이 있건 없건 로그인이 되게끔 하는 방법을 제시한 것 입니다. 설명이 좀 부족했네요 :sweat_smile:

와 로그인은 되네요 감사합니다! ㅎㅎ
근데 문제는 로그인 후에 메인화면에 레이어팝업이 한 번 더 나온다는 것이군요…

음… 레이어 팝업이 반드시 없어져야 하는 작업이신가보군요 ~_~
While 이나 Do While 액티비티로 처리를 해야겠네요.
예시이미지 를 참조하여 수정해보세요. IsPopupExist 변수값은 true 기본값을 주시면 될겁니다.

여러 레이아웃 팝업 닫기버튼이 공통된 셀렉터로 설정되어 있어야 합니다.
만약 팝업창1은 idx=1, 2는 idx=2 처럼 개별 구분되는 속성이 셀렉터에 포함되어있으면 안될수 있어요

도와주셔서 정말 감사합니다…

보내주신 이미지대로 해봤는데 뭐가 문제인지 실행한지 1초만에 프로젝트가 종료가 되 버립니다…ㅠㅠ

Element Exists Indicate on Screen에 레이아웃 창 닫기버튼을 설정해 줘야 하나요?

창 닫기 버튼, 레이아웃 전체화면 둘 다 해봤는데 결과는 똑같습니다 :joy:

엥? 프로젝트가 종료된다구요? 닫아야할 사이트가 혹시 외부에서 접속 가능한 사이트인가요? 직접 봐야 할 듯 하네요 ~_~ 인트라넷 웹서비스라면 어떻게 방법을 확인하기 어려울 듯 하네요;;

인트라넷 웹서비스는 아닙니다. ㅎㅎ

그리고 레이어팝업이 3개라면 parentid 부분이

‘mainframe_VFrameSet_TopFrame_CommLgds010P_0form_ImageViewer00Im*’
'mainframe_VFrameSet_TopFrame_CommLgds010P
_1form_ImageViewer00Im*’
'mainframe_VFrameSet_TopFrame_CommLgds010P
_2_form_ImageViewer00Im*’

이런 식으로 다르면 방법이 없는건가요?;;

태그는 이런 식으로 되어 있습니다.
“”

‘mainframe_VFrameSet_TopFrame_CommLgds010P_*form_ImageViewer00Im*’ 

처럼 별표로 적용하면 될 겁니다.
혹시 문제의 사이트 주소를 알려주실 수 있으신가요?
오랜만에 끓어오르는군요 -ㅅ-

partner.hyundai.com/gscm 입니다

신경써 주셔서 정말 감사합니다 ㅠㅠ

Main.xaml (9.2 KB)

UiPath.System.Activities 18.3.6897.22524
UiPath.UIAutomation.Activities 18.3.6897.22543 기준으로 만들었습니다.

이보다 높은버전을 사용하신다면 아마 호환될 겁니다.

필요하신 작업 액티비티들을 가장 하단의 Messge Box 액티비티를 제거하고, 그 위치에 배치하거나, 보내드린 Main.xaml 파일명을 변경하여 프로젝트에 추가시킨 뒤 필요할때마다 Invoke Main workflow 액티비티를 이용해서 호출하는 방식으로 사용하시면 될 겁니다.

브라우저는 IE 기준으로 작성했습니다.

2 Likes

바쁘신 와중에도 저를 위해 시간 내주셔서 다시 한 번 감사드립니다.
적용 해보고 오겠습니다 (_ _)꾸벅