Selenium (with.python)

Jun_Tree·2024년 11월 6일
3

QA

목록 보기
6/6
post-thumbnail

자동화 테스트의 첫 단추

-Selenium
-ChromeWebDrvier

셀레니움이란?

셀레니움(Selenium)은 웹 애플리케이션 자동화 및 테스트를 위한 포터블 프레임워크이다. 셀레니움은 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 플레이백 도구를 제공한다. (셀레니움 IDE) C 샤프, 그루비, 자바, 펄, PHP, 파이썬, 루비, 스칼라 등 수많은 유명 프로그래밍 언어들에서 테스트를 작성하기 위한 테스트 도메인 특화 언어(Selenese)를 제공한다. 이 테스트들은 현대의 대부분의 웹 브라우저에서 수행이 가능하다. 셀레니움은 윈도우, 리눅스, macOS 플랫폼에서 디플로이된다. 아파치 2.0 라이선스로 배포되는 오픈 소스 소프트웨어이다. 웹 개발자는 무료로 다운로드, 사용할 수 있다.

Selenium을 왜 써야할까?

BeautifulSoup 라이브러리만으로도 다양한 사이트의 정보를 추출할 수 있다. 그런데, 자바 스크립트가 발전하면서 Ajax(비동기 통신) 형태로 서버와 데이터를 주고 받아 화면에 뿌려주는 사이트가 많아졌다. 이러한 형태로 데이터를 주고 받으면 URL 변경이나 새로고침 없이 데이터를 가져오게 된다.
이때, 데이터를 가져오지 못하는경우가 생기는데...

이를 방지하고 동적 데이터를 불러올 수 있는 것이 바로 Selenium

Selenium을 써야하는 이유는 아래와 같다

  1. 동적 데이터를 크롤링하기 위해
  2. 다양한 HTML 요소에 클릭, 키보드 입력 등 이벤트를 주기 위해
  3. 자동화테스트

그렇다면, 바로 Selenium을 사용하러 가보자

1. Selenium 설치

pip install selenium

2. ChromDriver 설치

크롬 브라우저를 제어하기 위한 드라이버지만 IE,FireFox등 다양한 브라우저도 제공한다.
https://chromedriver.chromium.org/downloads 로 이동해서 자신의 크롬버전 및 운영체제와 동일한 드라이버를 다운로드하기

3. 프로젝트 폴더에 Chromedriver.exe파일을 넣어주기

4. Selenium을 통해 Chrom브라우저 열기

driver 경로를 파일경로와 같은 곳에 둘 경우

from selenium import webdriver
driver = webdriver.Chrome()
url = 'https://www.google.com'
driver.get(url)

driver 경로를 파일경로와 다른 곳에 둘 경우

from selenium import webdriver
driver = webdriver.Chrome('driver의경로')
url = 'https://www.google.com'
driver.get(url)

5. Eelement값 찾기

driver.find_element < 찾는 엘리먼트 중 첫번째
driver.find_elements < 모든 엘리먼트

element로 찾을 수 있는 종류는 아래와같다.

driver.find_element(By.CLASS_NAME, "")
driver.find_element(By.ID, "")
driver.find_element(By.CSS_SELECTOR, "")
driver.find_element(By.NAME, "")
driver.find_element(By.TAG_NAME, "")
driver.find_element(By.XPATH, "")
driver.find_element(By.LINK_TEXT, "")
driver.find_element(By.PARTIAL_LINK_TEXT, "")

위 명령어들을 통해 웹 페이지의 속성값들을 가져오고 driver. 명령어로 수행할 수 있다.

profile
느려도 좋으니 꾸준하게

2개의 댓글

comment-user-thumbnail
2024년 11월 8일

이번 주 주말에 마침 selenium 작성해 보려던 참이었는데 참고해서 잘 해보겠습니다 ㅎㅎ!

답글 달기
comment-user-thumbnail
2024년 11월 8일

짧은 시간에 셀레니움에 대해서 알 수 있어서 좋았습니다. 글 잘보고 있습니다.

답글 달기