최근 많이 이용하는 웹브라우저인 크롬 웹드라이브를 이용하는 방법에 대한 것입니다.
한글 문제가 있는데 적절히 사용하시면 됩니다.
우리는 점점 없어지는 euc-kr은 윈도우의 한글과 호환이 됩니다. 즉, 윈도우에서 utf-8로 만들어진것은 깨져 보이는 경우를 보게 될 수 있다는 것입니다.
일반적인 사이트는 utf-8이 많습니다. 프로그램안에서는 utf-8로 해야 되는데 이때문에 iconv 같은것을 찾아 보았는데 보이질 않아 그때그때 적절하게 변환하여 사용 했습니다.
#include <MsgBoxConstants.au3>
#include "wd_capabilities.au3"
#include "wd_helper.au3"
_WD_CapabilitiesStartup()
_WD_CapabilitiesAdd("AlwaysMatch")
_WD_CapabilitiesAdd("acceptInsecureCerts", True)
_WD_CapabilitiesAdd("firstMatch", "chrome")
_WD_CapabilitiesAdd("w3c", True)
_WD_CapabilitiesAdd("prefs", "download.defult_directory", @ScriptDir & "\Downloads")
_WD_CapabilitiesAdd("excludeSwitches", "enable-automation")
_WD_CapabilitiesDump(@ScriptLineNumber & " Testing")
Local $sCapabilities = _WD_CapabilitiesGet()
_WD_Option("Driver", @ScriptDir & "\chromedriver.exe")
_WD_Option("Port" , 9515)
_WD_Option("DefaultTimeout", 1000)
_WD_Option("DriverParams", "--log-path=" & Chr(34) & @ScriptDir & "\WebDriver_Testing.log" & Chr(34))
_WD_Startup()
_WD_ConsoleVisible(false);
Local $WD_SESSION = _WD_CreateSession($sCapabilities)
_WD_Window($WD_SESSION, "MAXIMIZE")
;
; utf-8 한글이 많다는것을 인지 해야 한다. 간혹 EUC-KR 사용하는 사이트가 있다
$obj = _WD_GetElementByName($WD_SESSION,"q")
_WD_SetElementValue($WD_SESSION,$obj,"한글처리")
; 버튼을 찾아서 클릭해 준다.
$obj = _WD_FindElement($WD_SESSION,$_WD_LOCATOR_ByXPath, "/html/body/div[1]/div[3]/form/div[1]/div[1]/div[3]/center/input[1]")
_WD_ElementAction($WD_SESSION,$obj, "CLICK")
_WD_LoadWait($WD_SESSION, 3000)
;~ $sElement = _WD_FindElement($WD_SESSION,$_WD_LOCATOR_ByXPath, "/html/body/div[2]/div[2]/table/tbody/tr[2]/td[2]")
;~ $sText = _WD_ElementAction($WD_SESSION, $sElement, 'text')
;~ ConsoleWrite( 'value: ' & $sText & @CRLF )
If Not @Compiled Then MsgBox($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION, "Information #" & @ScriptLineNumber, "Waiting before _WD_Shutdown()")
; 브라우저 닫기
_WD_DeleteSession($WD_SESSION)
_WD_Shutdown()
1) 크롬 웹드라이브 다운로드
현재 사용중인 크롬과 맞는 버전을 다운로드 받는다. 내 경우는 완벽하게 맞는 번호는 없어서 비슷한 것을 다운로드 받았다.
chrome://settings/help
https://chromedriver.chromium.org/downloads
다운로드 받은 파일은 오토잇 프로그램하고 같은 디렉토리에 있는게 편하다고 한다.
2) 오토잇용 웹드라이브 모듈을 다운로드 받는다.
아래에서 udf는 사용자 함수를 말한다.
JSON UDF, WinHTTP UDF, WebDriver UDF
https://www.autoitscript.com/wiki/WebDriver#Requirements
아래에 보면 필요한 것이 무엇인지 알 수 있다.
https://github.com/Danp2/au3WebDriver
json은 히스토리(날짜) 끝에 보면 다운로드 받을 수 있는 링크가 있다.
https://www.autoitscript.com/forum/topic/148114-a-non-strict-json-udf-jsmn
https://github.com/dragana-r/autoit-winhttp/releases
https://github.com/Danp2/au3WebDriver/releases/tag/1.0.0
위 소스를 실행 시키기 위해서는 필요한 라이브러리가 있는데 웹드라이브 사이트 가면 받을 수 있는 주소가 있습니다.
GitHub - Danp2/au3WebDriver: Web Driver UDF for AutoIt
* 웹드라이브 받기
https://developer.microsoft.com/ko-kr/microsoft-edge/tools/webdriver/
https://sites.google.com/chromium.org/driver/
https://github.com/cagivajsp/WebDriver
참고한 사이트는 아래 링크를 참고하시면 됩니다.