처음 사용해 본 셀레늄

개요



Selenium이라는 도구를 들은 적은 있지만, 지금까지 사용할 기회가 없었다.
하지만, 웹상인 단조 작업을 반복하게 되어, 게다가 그 수가 방대하고 매우 귀찮게 합니다.

그래서 자동화하자! …라는 이야기가 되어, Web의 자동화 툴로서 Selenium을 사용해 보았다. 그것의 소개.
아래에서는 OS는 Windows10, 브라우저는 Google 크롬 , 프로그래밍 언어는 Python3.9를 사용하고 있다.

소개



Selenium을 사용하려면 다음이 필요합니다.
  • Selenium 자신
  • 브라우저
  • 브라우저 드라이버

  • 아래에서는 ChromeDriver 실행 파일을 다운로드하는 방법과 chromedriver-binary를 import하는 방법을 썼습니다.
    어느 쪽이든 동작에 문제는 없지만, 후자는 개발 환경에서 import한 것이 사용되고 있지 않다는 경고가 나오는 것이 싫기 때문에, 나는 전자를 사용하고 있다.

    ChromeDriver를 다운로드하는 방법



    ChromeDriver 개발 페이지 에서 대상 OS와 Chrome 버전에 맞는 드라이버를 데려 와서 원하는 곳에 놓습니다.
    (이하에서는 C:\git\project\driver\chromedrive.exe에 넣었다고 가정하여 이야기를 진행한다)

    사용중인 Chrome 버전은 "도움말"> "Google Chrome 정보"에서 확인할 수 있습니다.


    pip로 Selenium을 설치.
    pip install selenium
    

    Python(test.py)의 샘플 코드는 다음과 같습니다.
    from selenium import webdriver
    import time
    
    driver = webdriver.Chrome('C:\git\project\driver\chromedrive.exe')
    driver.get('https://www.google.co.jp/')
    time.sleep(5)
    search_box = driver.find_element_by_name("q")
    search_box.send_keys('ChromeDriver')
    search_box.submit()
    time.sleep(5)
    driver.quit()
    

    그리고 Python을 두드리면 Chrome이 열리고 Google 페이지를 표시합니다.
    5초 후에 'ChromeDriver'로 검색, 5초 후에 닫는다는 자동화가 가능하다.
    python test.py
    

    chromedriver-binary를 사용하는 방법



    pip에서 Selenium 및 chromedriver-binary를 설치합니다.
    pip install selenium
    pip install chromedriver-binary==87.0.4280.88
    

    chromedriver-binary에서 버전을 지정하는 이유는 그때 설치된 Chrome 버전과 일치하고 싶었기 때문입니다.
    아무것도 지정하지 않으면 그 때의 최신 버전이 설치되어 Chrome 버전과 맞지 않으면 오류가 발생합니다.
    from selenium import webdriver
    import time
    import chromedriver_binary
    
    driver = webdriver.Chrome()
    driver.get('https://www.google.co.jp/')
    time.sleep(5)
    search_box = driver.find_element_by_name("q")
    search_box.send_keys('ChromeDriver')
    search_box.submit()
    time.sleep(5)
    driver.quit()
    

    기동이나 동작 방법에 대해서는 위와 같다.
    python test.py
    

    기타



    위의 방법에서는 Google 크롬 버전이 업데이트되면 드라이버와의 버전이 맞지 않고 시작시 오류가 발생할 수 있습니다.
    시험에 사용하는 것만이라면 브라우저도 드라이버도 최신판을 사용하면 좋지만, 그렇지 않은 경우는 브라우저의 자동 갱신을 중지해 두는 것이 좋다.
    예를 들어 Google Chrome의 경우 GoogleUpdate.exe가 실행되지 않도록 한다.
  • Google 크롬의 자동 업데이트를 중지하는 방법 초간단 버전

  • 다만, 브라우저가 자동 갱신되지 않으면, 버그나 취약성이 남아 버린다.
    그 때문에, 예를 들면 상용의 브라우저는 Edge, 자동 조작시키는 브라우저는 Chrome등과, 구별해 두는 편이 좋을 것 같다.

    좋은 웹페이지 즐겨찾기