셀레늄(Selenium)으로 웹제어

2024. 1. 23. 23:13IT관련

반응형

셀레늄(Selenium)

업무 자동화를 하는 과정으로 Chrome 브라우저를 제어해야 할일이 생겼다.

예를 들어 네이버 검색창에 자동으로 텍스트가 입력되고 바로 검색될 수 있도록 할 수 있다.

네이버 검색창에 텍스트 입력 후 검색

코드 설명

from selenium import webdriver
from selenium.webdriver.common.by import By


if __name__ == '__main__':
    """
    Main
    """
    # 크롬 옵션 생성
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_experimental_option('detach', True)	# Chrome이 종료되지 않도록 하는 옵션
    
    # 크롬 세션 생성
    driver = webdriver.Chrome(options=chrome_options)
    driver.maximize_window()    # 창 최대화
    driver.get('https://www.naver.com') # URL로 이동

    # 검색어 입력창
    input = driver.find_element(By.XPATH, '//*[@id="query"]')
    input.send_keys('selenium')

    # 검색 버튼
    search = driver.find_element(By.XPATH, '//*[@id="sform"]/fieldset/button')
    search.click()

 

Chrome option에 대한 내용은 아래에 자세히 나와 있다.
Chrome specific functionality

 

Chrome specific functionality

These are capabilities and features specific to Google Chrome browsers.

www.selenium.dev

 

아래 코드는 검색어 입력창을 찾고 selenium이라는 텍스트를 입력한다.

input = driver.find_element(By.XPATH, '//*[@id="query"]')
input.send_keys('selenium')	# 검색창에 selenium 텍스트 전송

여기서 XPath는 W3C의 표준으로 확장 생성 언어 문서의 구조를 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어이다. Chrome에서 XPath를 찾는 방법은 어렵지 않다.

 

XPath 찾는 방법

  1. 찾고자 하는 항목에 마우스 우클릭
  2. 검사
  3. Dev tool에서 항목이 하이라이트 되는데, 여기에 마우스 우클릭
  4. Copy > Copy XPath

find_element

아래 코드는 검색 버튼을 찾아 클릭이 되도록 한다. 그러면 selenium 검색 결과 화면으로 전환된다.

search = driver.find_element(By.XPATH, '//*[@id="sform"]/fieldset/button')	# 검색 버튼 
search.click()	# 검색 버튼 클릭

 

반응형