안녕하세요,
본 원문은 https://github.com/Xeo786/Rufaydium-Webdriver 의 자료를 가지고 제작되었습니다.
크롬 셀레니움을 사용할때 오토핫키, 혹은 다른 언어도 크롬 드라이버를 사용하였습니다.
이 Rufaydium의 제작자의 설명을 번역하면,
"브라우저와 상호 작용하기 위한 AutoHotkey WebDriver 라이브러리. 루페이디움은 웹드라이버 세션을 생성하는 동안 자동으로 최신 웹드라이버를 다운로드하고 브라우저 버전에 따라 웹드라이버를 업데이트합니다."
"지원되는 브라우저: 크롬, MS 엣지, 파이어폭스, 오페라."
해당 루페디움 을 다운로드하시고 사용하시면됩니다 .
기본적인 소스는
#Include Rufaydium.ahk
/*
Load "chromedriver.exe" from "A_ScriptDir"
In case Driver is not yet available, it will Download "chromedriver.exe" into "A_ScriptDir"
before starting the Driver.
*/
Chrome := new Rufaydium("chromedriver.exe")
f1::
/*
Create new session if WebBrowser Version Matches the Webdriver Version.
It will ask to download the compatible WebDriver if not present.
*/
Page := Chrome.NewSession()
; navigate to url
Page.Navigate("https://www.autohotkey.com/")
return
f12::
Chrome.QuitAllSessions() ; close all session
Chrome.Driver.Exit() ; then exits driver
return
위 처럼 되어있는데요,
루페이디움 / 루페디움을 사용하는 방법은 위 깃 허브에 잘 나와있지만,
네이버 로그인을 셀레니움으로 도큐먼트 식으로 보내면 캡챠때문에 막혀버리더라구요,
이때 좋은 기능은 cdp 라는 기능을 사용하시면 되는데, 직접적인 타이핑 효과를 낼 수있습니다 .
f1::
Page := Chrome.getSessionByUrl("https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com")
if !isobject(page)
{
Page := Chrome.NewSession()
Page.Navigate("https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com")
}else{
msgbox,64,안내, 객체오류
return
}
Loop,{
Data:= Page.html ; 현재 Html 에 저장된 정보를 불러온다.
if(Rolad_Data != ""){
RegExMatch(Data,"비밀번호 찾기",Login_ro_a)
RegExMatch(Data,"아이디 찾기",Login_ro_b)
RegExMatch(Data,"회원가입",Login_ro_c)
if(Login_ro_a != "" and Login_ro_b != "" and Login_ro_c != ""){
Page.cdp.QuerySelector("#id").sendkey("아이디")
sleep,1500 ; 시간텀 삭제유무
Settings := Page.getElementsByclassname("input_row")[0] ;비밀번호창클릭
Settings.Click()
sleep,2000; 시간텀 삭제유무
Page.cdp.QuerySelector("#pw").sendkey("비밀번호") ; 유저 비밀번호
sleep,1500 ;; 시간텀 삭제유무
Settings := Page.getElementsByClassName("btn_login")[0] ;로그인 버튼클릭
Settings.Click()
sleep,1500
msgbox,로그인성공!
break
}
}
}
의소스 코드로 네이버 로그인을하면 캡챠 없이 로그인이 가능한 것을 볼 수있습니다 .
여러가지의 방법이 있겠지만,
기본적으로 네이버 네거티브 , : Page.Navigate 의 페이지 이동후 로딩이 끝난후 하단 로직이 실행되지만,
또다른 변수로 인해, 잘 불러오지 않았을경우
Data 의 정보가 공백이지 않을때 라는 조건을 달아주고
정규식으로 해당 정보에 로그인 페이지 내부에있는, 회원가입, 아이디 찾기 비밀번호 찾기의 문구 3가지가 있어야지만
아이디 / 비밀번호를 적는 행위를 하도록 하였습니다 .
이 루페이디움 라이브러리는, 실행즉시 크롬 드라이버를 자동으로 버전에 맞게 다운로드하고, 따로
Chrome. ~ 부분에 프로필 생성, 혹은 알트창 제거, 등 여러 문구가 있으니 찾아보시기 바랍니다 .
대표적으로 루페이디움 셀레니움의 기능이 여러가지가 있습니다.
해당 페이지로 들어가서 확인바라며,
페이지 스크롤기능
클릭기능
키 보내기
마우스 좌표클릭
마우스 클릭
쿠키 수집
탭 이동
등등 여러가지 기능들이있으니 참고바랍니다.
'오토핫키 > 오토핫키 중급강좌' 카테고리의 다른 글
오토핫키 [AHK] 루파디움(셀레니움 대용) 네이버 로그인하기-3 (0) | 2024.05.30 |
---|---|
오토핫키 [AHK] 루파디움(셀레니움 대용) 네이버 로그인하기-2 (0) | 2024.05.09 |
오토핫키 [AHK] 루파디움(셀레니움 대용) 네이버 로그인하기-1 (0) | 2024.05.02 |