1일 1개념정리 24.08.09.금 ~
큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.
무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#44. 셀레니움 ( Selenium )
이름부터 무슨 RPG게임의 던전 이름같은 셀레니움.... 약간 메이플스토리에서 볼법하다. 이건 무엇인가 ? 이것은 웹에서 자동화할 때 쓰는 도구이다. 무엇을? 바로 웹 페이지 탐색, 클릭, 폼 제출 등을 자동화할 수 있다. 그래서 웹페이지 상에서 테스트할 때 이용할 수 있다. 특히 크롤링할 때 사용한다고 이해하면 쉽다. 오늘은 셀레니움에 대해 알아보자.
셀레니움
셀레니움은 특히 웹페이지 상에서 테스트할 때 사용할 수 있다. 예를 들어, 배포하고 페이지에서 특정 작업이 잘 이루어지는지 확인할 때 이용할 수 있다.
ex) 로그인 버튼 누르기, 페이지 이동하기 등
특히 크롬 브라우저에서 호환할 수 있게 라이브러리까지 있으니 얼마나 대단한가 !! 그래서 프론트엔드상에서 기능 테스트나 웹 스크래핑 작업할 때 자주 사용된다.
from webdriver_manager.chrome import ChromeDriverManager # 크롬 드라이버 설치하기
셀레니움은 어떤 때에 사용할까?
- 웹 브라우저 자동화 : 웹 페이지에 대한 자동화된 상호작용 수행
- 크로스 브라우저 테스트 : 여러 종류의 브라우저에서 테스트를 실행
- 웹 페이지 요소 조작 : HTML 요소(버튼, 입력 필드 등)를 찾아서 조작 가능
- 스크래핑 : API가 없는 웹사이트에서 데이터를 수집하는 데 사용 가능
셀레니움 자동화를 잘 쓴다면 반복적인 업무를 잘 처리할 수 있다. 예를 들면 자동 로그인, 메일 보내기, 인스타그램 자동 좋아요 등 .... 이렇게 보니 매크로 같기도 하고 ??
예제코드로 실험하기
그럼 셀레니움을 한번 가볍게 써보자. 크롬에서 검색을 자동으로 해보자. 내 블로그를 구글에 검색하여 결과를 가져오는 코드를 짜보겠다.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
import time
# 웹드라이버 설정
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
# 구글 페이지로 이동
driver.get("https://www.google.com")
# 검색창 찾기
search_box = driver.find_element(By.NAME, "q")
# 검색어 입력 및 엔터키 입력
search_box.send_keys("100원짜리 개발자")
search_box.send_keys(Keys.RETURN)
# 몇 초 대기 (결과 로딩 대기)
time.sleep(3)
# 검색 결과 가져오기 (제목과 링크)
results = driver.find_elements(By.CSS_SELECTOR, 'div.g')
# 검색 결과 출력
for index, result in enumerate(results, start=1):
title_element = result.find_element(By.TAG_NAME, "h3")
try:
link_element = result.find_element(By.TAG_NAME, "a")
link = link_element.get_attribute('href')
title = title_element.text
print(f"{index}. 제목: {title}\n 링크: {link}\n")
except Exception as e:
continue
# 브라우저 닫기
driver.quit()
결과는 어떨까 ?? 두구두구두구두구 ~~~
이런식으로 아무것도 건들지 않고 자동으로 검색하고 결과를 가져온다 !!! 지금은 format을 그냥 제목, 링크정도로만 맞췄지만 여기서 내가 원하는 키워드를 더 자세하게 가져온다면 크롤링하여 데이터만 뽑아낼 때 용이할 것이다.
그리고 지금 화면상으로는 pycharm밖에 안보이는데 .... 화면설정을 파이참만 보이게 해놔서 그런 것 같다. 실제로는 아래와 같이 크롬창이 하나 뜨면서 홈화면-글자타이핑-검색 이런 flow가 그대로 흘러가게 된다. wow !!
'1일 1개념정리 (24년 8월~) > 테스팅 , SW공학개론' 카테고리의 다른 글
1일1개 (56) - 아나바다 패턴 (아껴쓰고 나눠쓰고 .....) (1) | 2024.10.10 |
---|---|
1일1개 (55) - Insomnia (8) | 2024.10.09 |
1일1개 (53) - 테스팅 자동화 (0) | 2024.10.07 |
1일1개 (48) - 데이터 멍멍이 (3) | 2024.10.02 |
1일1개 (35) - 애자일은 신이야 (0) | 2024.09.16 |