셀레늄(Selenium)으로 웹제어
2024. 1. 23. 23:13ㆍIT관련
반응형
업무 자동화를 하는 과정으로 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
아래 코드는 검색어 입력창을 찾고 selenium이라는 텍스트를 입력한다.
input = driver.find_element(By.XPATH, '//*[@id="query"]')
input.send_keys('selenium') # 검색창에 selenium 텍스트 전송
여기서 XPath는 W3C의 표준으로 확장 생성 언어 문서의 구조를 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어이다. Chrome에서 XPath를 찾는 방법은 어렵지 않다.
XPath 찾는 방법
- 찾고자 하는 항목에 마우스 우클릭
- 검사
- Dev tool에서 항목이 하이라이트 되는데, 여기에 마우스 우클릭
- Copy > Copy XPath
아래 코드는 검색 버튼을 찾아 클릭이 되도록 한다. 그러면 selenium 검색 결과 화면으로 전환된다.
search = driver.find_element(By.XPATH, '//*[@id="sform"]/fieldset/button') # 검색 버튼
search.click() # 검색 버튼 클릭
반응형
'IT관련' 카테고리의 다른 글
Requests --> Selenium 세션 쿠키 유지 (0) | 2024.01.26 |
---|---|
Selenium 프로필 적용 및 창 제어 (0) | 2024.01.24 |
Raspberry Pi 4B(64 bits OS)에서 원격데스크톱(xrdp) 연결 오류 (0) | 2023.09.12 |
Ubuntu에 안드로이드 command line 빌드 환경 (4) | 2023.06.21 |
앱스토어 app 승인 기록 (0) | 2023.03.28 |