오토잇 크롬 웹드라이브 사용하기 > autoit
autoit

오토잇 크롬 웹드라이브 사용하기

조회 873회 댓글 0건

최근 많이 이용하는 웹브라우저인 크롬 웹드라이브를 이용하는 방법에 대한 것입니다.

한글 문제가 있는데 적절히 사용하시면 됩니다.

우리는 점점 없어지는 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")

    ;
    _WD_Navigate($WD_SESSION, "https://www.daum.net")

    ; 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)

;~ _WD_Navigate($WD_SESSION, "https://ifconfig.me/")
    ;~ $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 


970647bcdd7d460979d1bfb9205e94da_1684663303_943.png
 


* 웹드라이브 받기

https://developer.microsoft.com/ko-kr/microsoft-edge/tools/webdriver/

https://sites.google.com/chromium.org/driver/

https://github.com/cagivajsp/WebDriver



참고한 사이트는 아래 링크를 참고하시면 됩니다.




  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
전체 25건 1 페이지
  • profile_image 오토잇은 두가지를 받아야 합니다.1) 컴파일 프로그램2) 에디터 프로그램먼저 첫번째 컴파일 및 예제가 있는 파일을 받습니다.autoit-v3-setup.exe 프로그램을 실행하면 실행을 시킬것인지 에디터를 열것인지 물어 보는데요.실행을 선택하지 말고 반드시 에디터를 열것을 선택하시면 됩니다. 그래야 컴파일 시키죠.그리고 그 이전에 32bit, 64bit 선택하는것이 나오는데 아무거나 해도 일반 실행에는 관계 없습니다.그냥 다음 누르세요.그냥 캡처를 했네요. 아래 반드시 실행 보다는 "Edit"를 선택하세요. 그냥 캡처를 했네요. 위 반드시 실행 보다는 "Edit"를 선택하세요.두번째, 에디터 프로그램을 받습니다. 이건 …
  • profile_image # 컴파일 하는 방법pack은 용량이 줄어 든다"C:\Program Files (x86)\AutoIt3\aut2exe\aut2exe.exe"  /in "c:\list.au3" /out "e:\list.exe" /nopack /comp 2 오토잇이 아닌 다른 프로그램에서 au3 소스 컴파일 하지 않고 직접 실행 시키는 방법은 오토잇 에디터에서 실행 시킬때 하단에 명령줄이 나오는데 그것을 복사해서 사용하면 됩니다.그리고 컴파일 할 때 용량을 줄이기 위해서 pack 옵션을 줄이면 오탐율이 올라 갑니다. 그렇기 때문에 nopack 옵션을 주는것이 더 좋습니다.
  • profile_image 바로 디스크에 쓰는 것이빈다.무엇을 메모리에 있는것을 디스크에 저장하는 것입니다. 굳이 메모리에 가지고 있지 말라고 명시적으로 명령을 내려 줍니다.* PHP에서 버퍼에 있는것을 디스크에 저장하는것입니다. fflushFileFlushFlushes the file's buffer to disk.    Local $hFileOpen = FileOpen($sFilePath, $FO_OVERWRITE)    ; Flush the file to disk.    FileFlush($hFileOpen)  이렇게 데이터를 메모리(버퍼)에 가지고 있지 않고 바로 디스크에 저장하도록 하여 읽어 들일때 문제 되지 않게 하는데 언제 문제가 되…
  • profile_image 만약 먼저 올린 게시글의 웹드라이브를 설정 했다면 json은 웹드라이브에서 사용하기 때문에 별도로 포함시킬 필요는 없다.참고: 오토잇 크롬 웹드라이브 사용하기 > autoit  사용 방법은 다음과 같다.  가져오는 방식만 참고를 하면 되겠다.    $json_data      = FileRead($filePath)    $Object         = Json_Decode($json_data)    $UNIX_TIME      = Json_Get($Object, '["unix_time"]') 사용 방법을 보면 어떻게 하는지 알 수 있는데 특이하게 대괄호 안에 따음표가 있는것을 알 수 있다. PHP에서 처럼 배열로 …
  • profile_image 앞뒤 불필요한 눈에 보이지 않는 문자를 삭제할때 trim을 많이 사용하곤 합니다.엔터나 탭 같은 표현하는데는 필요하지 않는 문자들입니다.PHP에선 아래것을 삭제 합니다."\0" (ASCII 0 (0x00)), NUL 바이트."\t" (ASCII 9 (0x09)), 탭."\n" (ASCII 10 (0x0A)), 새 줄(줄 바꿈)."\v" (ASCII 11 (0x0B)), 수직 탭."\r" (ASCII 13 (0x0D)), 캐리지 리턴." "(ASCII 32(0x20)), 일반 공간.     ;~ https://www.autoitscript.com/autoit3/docs/functions/StringStripWS.htm  …
  • profile_image 리눅스 계열에서 많이 사용하는 유닉스 타임스탬프를 오토잇에서 사용하는 방법입니다.테스트를 먼저 해보고 문제 없는지 확인 후 사용하는것이 좋습니다.간혹 잘 된다고 알고 있었는데 후에 보면 시간의 차이가 있는 경우가 있기 때문입니다.     #include <Date.au3>    #include <Array.au3>    #include <Constants.au3>    ; ----------------------------------------------------------    ; 테스트    ; -------------------------------------------------…
  • profile_image 간단하게 만들어진 파일 관련 읽기 / 쓰기 함수 입니다.PHP의 file_get_contents, file_put_contents에 해당하는 함수 이지만 쓰기에선 이어쓰기 기능은 없는 함수 입니다.이어쓰기가 필요하면 두번째 파라미터를 받아서 기능을 추가할 필요가 있습니다.     #include <FileConstants.au3>    #include <MsgBoxConstants.au3>    #include <WinAPIFiles.au3>    Func _FilePutContents( $sFilePath, $sFileData )        ; 필요에 따라 두번째 파라미터의 조건을 줄…
  • profile_image 간속 다른 언어에서 익숙한 형태로 사용한것을 그대로 사용하고 싶은 경우가 있습니다.그런 경우 찾아서 사용하는데 찾은 것을 또 찾을 필요 없이 이렇게 정리해 두면 기억하는데도 더 도움이 됩니다.str_pad - stringformat  msgbox(4096,"",stringformat("%03d",1))가끔 출력을 할 때 자릿수를 맞춰주면 가독성이 좋은 경우가 있습니다.그럴때 사용 합니다. 한줄로 잘 맞춰진 경우가 가독성면에서 훨씬 좋기 때문입니다.위 예전의 경우는 앞쪽에 4자리의 공백을 줍니다. 뒤쪽에 추가 하는 것은 한번 더 확인해 봐야 겠습니다.