티스토리 뷰
웹 사이트에서 정보를 추출하는 크롤링 또는 테스트 자동화를 구현할 때 셀레니움 (Selenium) 라이브러리를 많이 사용합니다. 이번 포스팅에서는파이썬 개발환경 구축과 셀레니움으로 웹 테스트 자동화를 구현하는 방법에 대해 알아보겠습니다.
파이썬 프로그래밍 환경 구축
파이썬은 언어는 아래와 같은 특징이 있습니다.
- 인터프리터 언어 (코드 한줄 작성 후 바로 실행 가능)
- 객체 지향 프로그래밍 가능 (클래스 작성 문법 지원)
- 크로스 플랫폼 (파이썬 런타임만 설치되어 있다면, 다양한 OS에서 실행 가능)
- 손쉽고 빠르게 어플리케이션 작성 가능 (다양한 라이브러리 및 패키지가 있으며, 프로그래밍 문법에 대한 규약이 심하지 않음)
파이썬에 대해 간단히 알아보았으며, 파이썬 스크립트를 작성하고 실행하기 위한 IDE는 주로 PyCharm(파이참)을 많이 사용합니다. 파이참 설치파일은 아래 링크에서 다운받으실 수 있습니다. 개인적인 용도로 사용하시는 분이라면, Community 버전을 다운받아서 무료로 사용하실 수 있습니다.
파이참은 윈도우, 맥, 리눅스에서도 설치하여 사용하실 수 있지만, 이번 포스팅에서는 윈도우 버전에서 사용하는 방법에 대해 알아보겠습니다. 파이참 설치 요구사항은 아래와 같습니다.
- 가용 RAM 2GB 이상, 총 시스템 RAM 8GB 권장
- 2.5GB 하드 디스크 공간, SSD 권장
- 화면 해상도 1024x768 이상
- Python 2.7 또는 Python 3.5 이상
그리고 파이썬은 아래 링크에서 다운로드 받으실 수 있습니다. 파이썬은 파이참에서 요구하는 최소 버전은 이후로 다운받으시면 됩니다.
파이참 설치를 완료되었으면, 프로젝트를 생성하고 파이썬 코드를 실행해보겠습니다. 파일 > 새 프로젝트 메뉴에 진입하여 VIrtualenv 환경을 선택하여 파이썬 프로젝트를 생성합니다.
파이썬 프로젝트를 생성한 후, main.py 스크립트를 실행하면 Hi. PyCharm이
Hi, PyCharm
셀레니움(Selenium)으로 웹 사이트 테스트 자동화하기
셀레니움은 웹 브라우저를 자동으로 동작하도록 프로그래밍 가능한 라이브러리 입니다. 셀레니움을 사용하기 위해 드라이버 파일을 아래 링크에서 다운받습니다.
요즘은 Chrome 기반으로 동작하는 브라우저가 많으므로, 크롬 브라우저에서 웹 테스트를 하기 위한 크롬 드라이브러를 다운로드 받겠습니다.
주의하실 점은, 현재 PC에 설치된 크롬의 버전에 맞는 드라이버를 받으셔야 합니다. 크롬 브라우저의 버전 확인 방법은 "크롬 실행 > 도움말 > Chrome 정보"를 누르시면 Chrome의 버전을 확인하실 수 있습니다.
다시 파이참으로 돌아와서, 다운받은 크롬 드라이버를 프로젝트 폴더에 추가합니다.
드라이버를 추가한 후, 셀레니움 패키지를 설치해줍니다. pip로 커맨드 창에서 설치를 하셔도 되지만, pycharm의 python package 메뉴를 활용하여 아래와 같이 셀레니움을 설치하셔도 됩니다.
다음으로 main.py에서 크롬 드라이버를 제어하기 위한 셀레니움 코드를 작성합니다.
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 크롬 드라이버 런타임 경로 지정
driver = webdriver.Chrome("./chromedriver.exe")
# WebDriver의 실행이 완료될 떄 까지 최대 5초간 대기
driver.implicitly_wait(5)
# 크롬 브라우저 실행
driver.get("https://www.naver.com")
# Naver 검색 입력창에 입력
driver.find_element(By.XPATH, "/html/body/div[2]/div[2]/div[1]/div/div[3]/form/fieldset/div/input").send_keys("Hello Python")
# Naver 검색 버튼 클릭
driver.find_element(By.XPATH, "/html/body/div[2]/div[2]/div[1]/div/div[3]/form/fieldset/button").click()
sleep(5)
위의 코드를 간략하게 설명 드리면, 셀레니움으로 크롬 드라이버를 불러와서, 드라이버를 통해 www.naver.com 사이트를 실행합니다. 그리고, XPATH로 Html의 Tag를 찾아서 입력, 클릭 이벤트를 실행하라는 내용입니다. 마지막에 sleep을 준 이유는 파이썬 실행이 종료되면, 크롬 드라이버 실행도 종료되므로, 자동화 모드로 실행된 크롬은 종료되어 강제로 Sleep 코드를 추가하였습니다.
위와 같이, 원하는 대로 동작이 잘 실행되었다면, 성공적으로 파이썬으로 셀레니움 웹 테스트 자동화 프로그래밍을 잘 작성한 것입니다. 셀레니움으로 어느정도 웹 자동화 테스트를 진행하다보면, iframe의 내부 태그를 찾지 못하는 상황이 발생합니다. iframe의 내부 태그를 찾는 방법은 아래 링크를 참조 바랍니다.
'IT 기술' 카테고리의 다른 글
[AWS] API Gateway 캐싱 원리 및 사용 방법 (0) | 2023.03.04 |
---|---|
[Selenium] 동적 페이지에서 iframe 내부 Tag 찾는 방법 (2) | 2023.02.20 |
[Node.js] Promise.all을 활용한 비동기 코드 작성법 (0) | 2022.09.16 |
[Node.js] Promise, Await, Async로 동기, 비동기 작성하기 (0) | 2022.09.16 |
디자인 패턴 - 책임 연쇄(Chain of Responsibility) (0) | 2022.09.16 |
- Total
- Today
- Yesterday
- springboot restapi
- 스프링부트실행
- python
- oracle pga sga
- springboot rest api 서버
- TCP/UDP
- SPA
- notion 업무일정관리
- oracle 메모리
- 스프링부트 restapi
- C++
- springboot 실행
- springboot build
- 디자인패턴
- 멀티코어 멀티프로세서
- iframe 태그 찾기
- token
- AWS
- codesmell 유형
- OSI 7계층
- 코드스멜 유형
- 클린코드작성법
- 테스팅 자동화
- 디자인패턴 구조패턴
- 스프링부트빌드
- API Gateway 캐싱
- MPA
- selenium
- notion
- 클린코드작성원칙
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |