반응형

오늘은 C#을 이용한 Chrome 매크로를 제어할 수 있는 셀레니움(Selenium) 설치 방법에 대해서 알아보겠습니다. 셀레니움(Selenium)은 ChromeDriver를 사용해서 Chrome 브라우저에서 다양한 제어할 수 있는 패키지 모듈입니다.

먼저 C# Console 프로젝트를 하나 생성해주세요.

상단 메뉴에서 도구를 선택하고 "NuGet 패키지 관리자"에서 "솔루션 NuGet패키지 관리" 메뉴를 선택합니다.

"찾아보기" 항목 아래쪽에 검색창에 "selenium"을 입력하면 설치 가능한 패키지를 확인할 수 있습니다.

"Selenium.WebDriver"를 선택하면 우측에 프로젝트 설치 항목을 확인할 수 있습니다. selenium 체크 버전 선택 후 설치 버튼을 클릭합니다.

정상적으로 프로젝트에 셀레니움(Selenium)이 설치되었습니다.

이젠 직접 Chrome을 제어할 수 있는 Driver을 설치해야 합니다.

검색 항목 아래쪽에 "Selenium.WebDriver.ChromeDriver"를 선택하고 우측에서 버전 선택 후 설치 버튼을 클릭합니다.

Chrome을 제어하기 위한 ChromeDirver가 정상적으로 설치되었습니다.

설치됨 항목에서 "Selenium.WebDriver","Selenium.WebDriver.ChromeDriver" 내용을 확인할 수 있습니다.

이제 코드를 입력해서 정상 동작을 확인하겠습니다.

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;


namespace ChromeAgent
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
                                 
            IWebDriver driver = new ChromeDriver();
            driver.Url = "https://www.naver.com";            
            driver.Manage().Window.Maximize();
                      
            string cmd = Console.ReadLine();
            
        }
    }
}

ChromeDriver 클래스를 생성하고 Url를 입력하면 ChromeDriver가 동작하면서 naver.com으로 이동합니다.

컴파일을 진행하면 정상적으로 동작하지 않고, ChromeDriver.exe가 종료됩니다. 내용을 확인하면 버전 문제가 있습니다.

"Selenium.WebDriver.ChromeDriver"은 설치된 Chrome 버전을 확인해서 동일한 버전일 경우만 정상적으로 동작합니다. 기본적으로 설치 시 Driver 버전을 설치된 Chrome 매이저 버전에 맞추거나, Chrome을 업데이트해서 최신 버전으로 변경하면 문제 없이 동작합니다.

 

Chrome 버전이 동일하면 정상적으로 ChromeDriver가 실행되면서 naver.com으로 이동합니다. ChromeDriver는  Python을 사용해서 실행 도 가능하지만, C#을 주로 사용한다면 솔루션 패키지 설치 후 Chrome을 자유롭게 제어할 수 있습니다.

감사합니다.

반응형
반응형

파이썬(Python)은 간단하게 강력한 기능을 구현할 수 있는 좋은 언어입니다. 오늘은 파이썬(Python)을 사용해서 WEB 매크로 기능을 구현해보겠습니다. 간단하게 네이버 검색 창에서 오늘 날씨를 입력하고 확인하는 매크로를 작성하겠습니다. 매크로를 만들기 전에 필요한 ChromeDriver 및 selenium을 설치해야 합니다.

먼저 pip 기능을 사용해서 selenium을 설치합니다. 셀레늄(selenium)을 사용해서 ChromeDriver를 제어할 수 있습니다.

https://chromedriver.chromium.org/downloads

 

ChromeDriver - WebDriver for Chrome - Downloads

Current Releases If you are using Chrome version 102, please download ChromeDriver 102.0.5005.27 If you are using Chrome version 101, please download ChromeDriver 101.0.4951.41 If you are using Chrome version 100, please download ChromeDriver 100.0.4896.60

chromedriver.chromium.org

ChromeDriver 홈페이지에서 사용중인 크롬과 동일한 버전을 다운로드해주세요. 메이저 버전만 확인하면 됩니다. 다운로드 후 압축을 해제하면 ChromeDriver.exe를 확인할 수 있습니다.

먼저 간단하게 코드를 사용해서 네이버 사이트를 방문하겠습니다.

from selenium import webdriver
driver = webdriver.Chrome("D:/chromedriver.exe")
url = "https://www.naver.com"
driver.get(url)

selenium을 import 진행 후 webdriver.chrome 메서드를 사용해서 Chromedriver.exe를 로드합니다. driver.get(url) 적용 후 컴파일을 진행하면 Chromedriver.exe가 실행되면서 네이버 메인 페이지로 이동합니다.

ChromeDriver.exe가 실행되면서 별도 브라우저로 이동합니다. 매크로를 실행하기 위해서는 html 요소에 따른 내용을 확인할 수 있어야 합니다. ChromeDriver는 "//태그[@속성="속성값"]" 으로 HTML 태그를 인식할 수 있습니다.

먼저 검색 창 요소를 찾기 위해서 마우스를 이동합니다. 툴팁으로 "검색어 입력"을 확인할 수 있습니다.

Chrome를 실행 후 F12를 눌러주면 개발자 모드를 확인할 수 있습니다. 개발자 모드로 이동해서 Ctrl + F 키를 사용해서 "검색어 입력"을 검색해서 동일한 태그로 이동해주세요.

"검색어 입력" 테크를 확인하면 이제 xPath 경로를 설정해야 합니다.

xPath 경로를 확인하기 위해서는 태그를 선택하고 마우스 우크릭에서 "Copy" -> "Copt XPath"를 선택하면 태그 xPath를 확인할 수 있습니다. 검색창 태크 xPath는 "//*[@id='query']"입니다.

이제 검색 버튼 클릭 이벤트를 생성하기 위해서 검색 이미지 태그를 확인합니다. 마우스를 사용해서 "검색" 항목을 확인할 수 있습니다.

동일하게 태그를 선택하고 xPath를 복사합니다. 검색 버튼 xPath는 "//*[@id='search_btn']" 입니다.

    url = "https://www.naver.com"
    driver.get(url)

    xpath = "//*[@id='query']"
    input_window = driver.find_element_by_xpath(xpath)    
    input_window.send_keys("오늘 날씨")

    xpath2 = "//*[@id='search_btn']"
    text_panel = driver.find_element_by_xpath(xpath2)
    text_panel.click()

driver.find_element_by_xpath를 사용해서 xpath를 확인합니다. 텍스트를 입력하기 위해서 send_keys를 사용해서 "오늘 날씨"를 입력합니다. 두 번째 xpath를 확인하고 click 메서드를 사용해서 태그 클릭 이벤트를 발생합니다.

컴파일을 진행하면 네이버 페이지를 오픈하고 "오늘 날씨" 입력 후 검색 버튼이 클릭되는 모습을 확인할 수 있습니다. 파이썬(Python)은 복잡한 매크로 기능을 쉽게 제어할 수 있게 구조화되어 있어 누구나 손쉽게 간단한 매크로를 구현할 수 있습니다. ChromeDriver.exe는 독립적인 실행으로 웹에서 발생하는 쿠키 정보 및 부가 정보를 삭제하기 때문에 웹 매크로를 구현하기 매우 편리합니다. 태그 요소에 부합한 xPath는 Chrome 개발자 기능으로 한 번에 확인이 가능해서 더욱더 개발을 쉽게 도와줍니다. 매크로 기능 개발에 관심이 있다면 지금 바로 파이썬(Python)으로 ChromeDriver 확인해보세요.

감사합니다.

반응형

+ Recent posts