Autohotkey 를 사용하여 웹 자동화를 하는 경우 컴포넌트 오브젝트 모델(Component Object Model, COM) 을 사용하여 internet explorer 를 자동화 하곤 했는데~
 
최근에는 Chrome 을 주로 사용하기도 하고~ Python 에서 selenium 사용을 익히다 보니 Autohotkey 를 통한 웹 자동화에 소홀해 졌었습니다. 

그런데 최근 아래 포스팅을 보고 Autohotkey  에서 selenium 을 자동화 할 수 있다는 것을 알게 됐습니다. 


간단하게 정리한 과정은 다음과 같습니다.

1.  아래 주소에서 SeleniumBasic 을 다운로드 받고 설치 합니다.

2.  SeleniumBasic 설치시 WebDriver 도 설치가 되는데~  자신의 브라우저 버전과 안 맞아서 정상적으로 동작하지 않는다면 아래 주소에서 Third party software 부분에서 사용하고자 하는 브라우져의 WebDriver 를 설치 합니다. 


저는 현재 chrome 을 주로 사용하는데 ~ 과거 버전을 사용하고 있습니다. 그래서 최신 버전의  WebDriver 를 설치하니 정상적으로 동작하지 않더군요. 그래서 아래 주소에서 제 브라우저 버전에 맞는 WebDriver 의 버전이 무엇인지를 확인한 후에~  Chrome WebDriver 를 다운로드 받아서 설치 했습니다. 


chrome 의 버전을 확인하고 싶으시면 chrome 의 주소 표시 창에 chrome://help/  또는 chrome://version/ 이라고 치고 들어가 보시면 확인 할 수 있습니다.  저는 버전 54.0.2840.71 이어서~  ChromeDriver 2.25 버전을 아래 주소에서 다운로드 받았습니다.

 
다운로드 받고 압축을 푼 후에 SeleniumBasic이 설치된 폴더(Windows 7 : C:\Program Files\SeleniumBasic, Windows 10 : C:\Users\자신의계정\AppData\Local\SeleniumBasic ) 에 chromedriver.exe 파일을 붙여넣기 합니다. 

Autohotkey 에서 selenium 을 사용하는 예제 등은 첫 번째 링크의 예제를 확인해 보시기 바랍니다.

저는 다음과 같은 예제를 똑같이 따라 해 보니~ 

driver:= ComObjCreate("Selenium.CHROMEDriver") ;Chrome driver
driver.Get("http://the-automator.com/")
driver.findElementsByName("s").item[2].SendKeys("hello world")
MsgBox here

다음과 같이 정상적으로 동작하더군요. 


Autohotkey 에서 Selenium 사용시의 함수 이름 관련 글 : http://iamaman.tistory.com/2307 


  1. 김동민 2018.09.04 08:47

    안녕하세요 작성자님
    질문이 있어 글을 남겨봅니다

    위 스크립트 종료후에 바로 제어되고 있는 크롬창이 종료 되는데
    혹시 크롬창 유지 시켜주는 방법은 없을까요 ?

    • 남성 2018.09.04 13:09 신고

      프로그램이 종료 되기 때문에 크롬창이 꺼지는 것이므로 프로그램이 종료 되지 않게 해 주시면 되지 않을까요?

      아래와 같이 해 주니 프로그램이 종료되지 않고 따라서 브라우저도 살아 있네요.

      #Persistent
      ------Autohotkey 스크립트 ------
      return

  2. 김동민 2018.09.05 08:28

    감사합니다.
    막힌가슴히 뻥 뚤리네요!
    즐거운 하루 되세요 ^^

    • 남성 2018.09.05 13:45 신고

      도움되었다니 다행이네요. 방문해 주셔서 감사합니다. ^^

  3. 김동민 2018.09.05 20:01

    안녕하세요 작성자님
    염치 불구하고 질문좀 드리고자 또 방문드렸습니다..
    기존 파이썬으로 Selenium 을 이용하여 웹 자동화를 구성하다가
    오토핫키로 다시 해보고 있는데요

    driver.find_element_by_link_text("Expand All").click()
    위와 같은 파이썬 소스를
    driver.find_elementbylinktext("단계별A/S진행등록").click()
    위와같이 수정해보았는데 적용이 안되네요..
    혹시 방법이 있을까요 ??

    파이썬에선 잘 작동했는데 오토핫키는 뭔가 다른가보네요...ㅎ

    • 남성 2018.09.05 21:27 신고

      파이썬이랑 비교하면 함수 이름이 조금씩 다릅니다.

      아래 주소글 확인하면 Autohotkey 사용할때의 함수이름을 알 수 있을 거에요.

      http://iamaman.tistory.com/2307

      Python selenium 은 _(underscore) 로 구분된 함수 이름으로 만들었던데 Autohotkey 에서는 그렇지 않습니다. 예를 들어 질문하신 find_element_by_link_text 함수는 Autohotkey 에서는 FindElementsByLinkText 를 사용하시면 될겁니다.

      위 주소의 글 참조하면 다른 함수들 이름에 대해서도 어떻게 쓰는게 맞는건지 확인 할 수 있을 거에요.

  4. 징글징글벨라 2018.09.06 00:16 신고

    코드가 회사 컴에 있어서 지금은 확인이 안되고..

    사이트 들어가보니 잘못된 주소이거나 비공개 또는 삭제된 글이라네요 ~

    티스토리 계정 있어서 로그인 해봐도 안나오네여 ㅎㅎ

    • 남성 2018.09.06 01:28 신고

      어떤게 삭제 됐다는 건지....? 2307 글 삭제 안 됐는데 ...

  5. 김동민 2018.09.06 17:51

    ㅎㅎ 죄송합니다
    잠결에 쳐서 오타가 있었나봐요
    분명 다시 확인했었는데...ㅎ

    알려주신대로 일단 해결했습니다.

    2307 게시물에서도 참고 하고 공부해보고
    잘 모르겠으면 다시 찾아뵙겠습니다

    도움 정말 감사합니다!

  6. 셀레늄 2018.09.09 15:46

    셀레늄과 오토핫키를 어떤 경우에 같이 쓰게 되는건가요?

    • 남성 2018.09.09 18:35 신고

      웹 자동화를 하고 싶은 경우 셀레늄 라이브러리를 주로 사용하는데 언어 선택을 Autohotkey 로 한것 뿐입니다. Python 이든 C# 이든 자바든 편하신 언어 사용하시면 됩니다.

  7. named7 2019.03.07 17:15

    안녕하세요 작성자님
    게시글 올리신지 오래되서 답변을 해주실지는 모르겠지만
    질문이 있어서 댓글남겨요

    driver.findElementsByName("s").item[2].sendkeys(hello world) 와같이

    웹사이트 내 에있는 editbox에 키입력을하는건 성공을했는데 byname이 없고
    Classname&TagName 만 확인되는 버튼은 어떻게 클릭하는지 궁금합니다.

    driver.findElementsByClassName("btn").item[1].click() 이런식으로 작성을했는데 안되더군요..

    • 남성 2019.03.07 18:58 신고

      아래 주소 글 확인해보시면 사용가능한 함수 이름을 알수 있는데 FindElementByClass 라는함수를 사용해 보시는게 좋을것 같네요.

      https://iamaman.tistory.com/2307

  8. 박철민 2020.04.20 08:49

    안녕하세요!!
    오토핫키에서 셀레니움을 이용하는걸 검색하다가
    이 블로그에 방문했습니다.

    정리를 깔끔하게 잘 해주서셔...
    글 내용대로 했더니.. 설치가 잘되었습니다.
    감사합니다.

    하나 막히는게 있어서
    초면에 질문을 드립니다.

    SendKeys(driver.Keys.ENTER)를 사용하고픈데..
    이 걸 사용하려면 드라이버를 설치해야 한다고 하더라구요

    아무리 검색을 해도
    어디서 다운 받아야 하고..설치를 어디에 또 해야하는지를
    몰겠더라구요

    혹..
    주인장님...
    아시면 답변 좀 부탁드립니다.

    참조] https://the-automator.com/cross-browser-web-scraping-with-autohotkey-and-selenium/

    • 남성 2020.04.20 09:22 신고

      네 위 포스팅 중에 SeleniumBasic 를 설치하면 C:\Program Files\SeleniumBasic\ 폴더에 selenium 드라이버가 설치 됩니다.

      그런데 위 포스팅에도 적어 놨지만 요즘 많이들 사용하시는 Chrome 브라우저를 사용한다면 맞는 드라이버를 설치해 줘야 하고 위 포스팅에 어디서 다운로드 받는지 나와 있습니다.

      일단 위 코드 맨 마지막에 있는 예제는 제대로 실행이 되나요?

+ Recent posts