ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오토핫키 셀레니움, 실행중인 크롬에 연결
    프로그래밍/AutoHotKey 2022. 2. 20. 22:21
    반응형
     

    안녕하세요 레오입니다.

    오토핫키로 셀레니움을 사용중이신가요?

    제가 처음 오토핫키로 셀레니움을 접했을때 실행중인 크롬에 연결을 못했고

    "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고있습니다." 의 거슬리는 글자도 보이고

    프로그램을 종료하면 크롬이 같이 꺼져버려서 불편했던 기억이 납니다.

    이런 문제점을 해결하기 위해 이번 포스팅을 마련했습니다.

    먼저 항상 크롬이 디버깅모드로 실행되어있어야하는데요

    그러기 위해 평소 자주 실행하는 크롬의 바로가기를 약간 수정해주셔야됩니다.

    오른쪽버튼 - 속성

     

    맨 뒤에 스페이스바를 한번 누르시고 "--remote-debugging-port=9222" 를 입력해주시고 확인 버튼을 눌러주세요.

    벌써 거의 다했습니다.

     

    오토핫키에서 아래 코드를 추가해서 사용하시면 됩니다.

    driver := ChromeGet()
    driver.get("https://naver.com")
    
    ChromeGet(IP_Port := "127.0.0.1:9222")
    {
    	driver := ComObjCreate("Selenium.ChromeDriver")
    	driver.SetCapability("debuggerAddress", IP_Port)
    	driver.Start()
    	return driver
    }

    이런식으로 말이죠.

    하지만 이대로 쓰시면 첫번째 탭이 연동되서 조금 불편하실겁니다.

    그래서 저는 이렇게 사용하고있습니다

    IfWinNotExist,ahk_class Chrome_WidgetWin_1
    {
    	run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "--remote-debugging-port=9222"
    	a=0
    }
    ; 크롬 켜져있는지 확인, 개인컴퓨터에따라 경로가 다를 수 있음.
    ; 크롬이 꺼져있으면 디버깅 모드로 크롬을 실행하고 a변수에 0저장
    
    IfWinExist,ahk_class Chrome_WidgetWin_1
    {
    	WinActivate,ahk_class Chrome_WidgetWin_1
    	send,^t
    	a=1
    }
    ; 크롬 켜져있어서 ctrl+t로 새탭열고 a변수에 1저장
    
    driver := ChromeGet()
    
    if(a=1)
    {
    	driver.switchtonextwindow()
    ;크롬이 켜져있기때문에 새로만든 탭으로 전환
    }
    
    sleep,500
    driver.window.maximize()
    ;창 최대화
    
    sleep,500
    driver.get("https://naver.com")
    
    
    ;원하는 코드
    
    
    ExitApp
    
    F11::
    Reload
    return
    
    F12::
    ExitApp
    return
    
    ChromeGet(IP_Port := "127.0.0.1:9222")
    {
    	driver := ComObjCreate("Selenium.ChromeDriver")
    	driver.SetCapability("debuggerAddress", IP_Port)
    	driver.Start()
    	return driver
    }
     

     

    도움이 되셨으면 좋겠습니다.

    더 좋은 방법이 있으시면 언제든지 알려주시면 고맙겠습니다!

     

    반응형

    댓글

Designed by Tistory.