본문 바로가기
셀레니움문법(오핫_VBA)

[셀레니움] 팝업창 요소 선택

by 일등미노왕국 2022. 10. 3.

VBA나 오토핫키의 셀레니움 문법은 거의 비슷하다.

따라서 셀레니움에서 막히는 부분이 있으면 파이썬으로 셀레니움을 검색하고

그 검색한 내용을 VBA를 붙혀 검색하면 그에 해당하는 명령어들이 나오게 되니 그걸 사용하면 된다.

 

크롬의 Xpath를 통해 브라우저를 제어하다 보면 다른 창이 열리거나 팝업이 발생하면 Xpath가 안먹히는 현상이 발생한다.

이는 정확히 말하면 안먹히는 것이 아니라...

1층에서 작업하다가 2층이 열렸는데 2층요소를 1층에서 찾으니 못찾는 것이다. 

해서...

 

팝업이 열리면 2층으로 가세요...라는 명령어인( SwitchToNextWindow)를 하셔서 2층에서 작업을 하시고

더보기
Sel.FindElementByXpath("/html/body/div/header/div/aside/ul/li/a").click   ;= 로그인버튼을 눌러라

   Sel.SwitchToNextWindow                                                    ;= 로그인 팝업창으로 포커스를 옮겨라   

         Sel.FindElementByXpath("//*[@id=""login_id""]").sendkeys(아이디)    ;= 로그인 창의 아이디 요소에 GUI_아이디를 입력해라  
         Sel.FindElementByXpath("//*[@id=""login_pwd""]").sendkeys(비번)     ;= 로그인 창의 비번 요소에 GUI_비번을 입력해라 


         Sleep, 500
         Send, {Enter}
         Sleep, 500
         Send, {Enter}

   Sel.SwitchToPreviousWindow                                                ;= 원래 창으로 회기해라

그 작업이 끝나면 다시 1층으로 가야 하니까

SwitchToPreviousWindow를 하셔야 한다.

 

본인도 처음엔 2층에서 작업하고 거기서 팝업이 닫혔으니 내가 1층으로 회기 된거 아닌가 했는데, 컴은 그렇게 인식하지 않는거 같다. 

 

암튼 이렇게 하면 Xpath를 쓰는데 막히는것이 없을 것이니 참고 하길바란다.

'셀레니움문법(오핫_VBA)' 카테고리의 다른 글

[Selenium] Xpath Axes 정리  (0) 2023.04.02

댓글