1. 교육 내용
1) 웹 엘리먼트 찾기
-. By.ID(kakaoGnb), By.CLASS_NAME(gnb_tistory)
-. By.CSS_SELECTOR(#kakaoGnb) , By.XPATH(//*[@id="kakaoGnb"])
-> 요소를 식별하는 데 있어서는 페이지의 구조와 특성을 고려하여 가장 적합한 방법을 선택하는 것이 중요
2) 유저 액션 자동화하기
-. 클릭하기
element = driver.find_element(By.ID, 'element_id' )
element.click() -> 엘리먼트를 자동으로 클릭
-. 텍스트 입력하기
element = driver.find_element(By.CLASS_NAME, 'element_name' )
element.send_keys( "입력할 텍스트" )
-> 텍스트 입력 박스에서 문자 자동 입력
3) 테스트 시나리오를 자동화하기
[과제] 개인이 시나리오 구성하여서 자동화 구현하기
-. www.nate.com 접속
-. ces 입력
-. 검색 선택
-. 뉴스 선택
-. 뉴스 제목 수집하기
-. 예상 테스트 결과 : 최근 뉴스 데이터들이 수집이 된다
import time
from selenium import webdriver
from selenium . webdriver . common . by import By
driver = webdriver . Chrome ()
driver . set_window_position ( 0 , 0 )
driver . set_window_size ( 1920 , 1080 )
driver . implicitly_wait ( 10 )
#검색창 선택 및 ces 텍스트 입력
elem = driver . find_element ( By . CSS_SELECTOR , '#q' )
elem . click ()
elem . send_keys ( "ces" )
elem = driver . find_element ( By . CLASS_NAME , 'type_btn' )
elem . click () #검색창선택
time . sleep ( 2 )
elem = driver . find_element ( By . CSS_SELECTOR , '#daumGnb > div > ul > li:nth-child(2) > a > span' )
elem . click () #뉴스 선택
time . sleep ( 2 )
#뉴스 제목 출력
title = []
elem = driver . find_elements ( By . CLASS_NAME , 'item-title' )
title = elem
for i in title :
print ( i . text )
▶출력 결과
[과제] if문으로 PASS/FAIL 추가하여 자동화 코드 작성하기
import time
from selenium import webdriver
from selenium . webdriver . common . by import By
driver = webdriver . Chrome ()
driver . set_window_position ( 0 , 0 )
driver . set_window_size ( 1920 , 1080 )
driver . implicitly_wait ( 10 )
#TC1 홈페이지 접속 결과 확인
t_url = driver . current_url
print ( '[TC1]PASS: 롯데온 접속 완료' )
else :
print ( '[TC1]FAIL: 롯데온 접속 실패' )
# #TC2 비유효한 글자 검색
elem = driver . find_element ( By . CSS_SELECTOR , '#headerSearchId' )
elem . click ()
elem . send_keys ( 'ㄹㄹㄻㅇㅁ' )
elem = driver . find_element ( By . CSS_SELECTOR , '#mainLayout > header > div > div.main.innerContent > div.searchAreaWrap > div > button' )
elem . click ()
driver . implicitly_wait ( 10 )
elem = driver . find_element ( By . CSS_SELECTOR , "#content > div.srchResultWrap > section > div.srchResultArea.srchResultAreaFilterNone > div > section > p" )
if "ㄹㄹㄻㅇㅁ의 검색결과가 없습니다." in elem . text :
print ( "[TC2]PASS: 비유효한 상품 검색 성공" )
else :
print ( '[TC2]FAIL: 비유효한 상품 검색 실패' )
#TC3 입생로랑 립스틱 검색
elem = driver . find_element ( By . CSS_SELECTOR , '#mainLayout > header > div > div.main.innerContent > h1 > a > img' )
elem . click ()
elem = driver . find_element ( By . CSS_SELECTOR , '#headerSearchId' )
elem . click ()
elem . send_keys ( "입생로랑 립스틱" )
elem = driver . find_element ( By . CSS_SELECTOR , '#mainLayout > header > div > div.main.innerContent > div.searchAreaWrap > div > button' )
elem . click ()
driver . implicitly_wait ( 10 )
elem = driver . find_element ( By . CSS_SELECTOR , "#content > section.srchTitleArea > h2 > strong" )
if "입생로랑" in elem . text :
print ( "[TC3]PASS: 입생로랑 립스틱 검색 성공" )
else :
print ( '[TC3]FAIL: 입생로랑 립스틱 검색 실패' )
#TC4 영문 검색
elem = driver . find_element ( By . CSS_SELECTOR , '#mainLayout > header > div > div.main.innerContent > h1 > a > img' )
elem . click ()
elem = driver . find_element ( By . CSS_SELECTOR , '#headerSearchId' )
elem . click ()
elem . send_keys ( "adidas cap" )
elem = driver . find_element ( By . CSS_SELECTOR , '#mainLayout > header > div > div.main.innerContent > div.searchAreaWrap > div > button' )
elem . click ()
driver . implicitly_wait ( 10 )
elem = driver . find_element ( By . CSS_SELECTOR , "#content > section.srchTitleArea > h2 > strong" )
if "adidas" in elem . text :
print ( "[TC4]PASS: adidas 검색 성공" )
else :
print ( '[TC4]FAIL: adidas 검색 실패' )
▶출력 결과
2. 수강 후기
내가 원하는 방식대로 웹페이지를 자동화 한다는 것이 흥미롭고 매우 재미있는 수업이였다. 구글링 하면서 찾아 보는 방법에서는 한계가 있었는데 이 강의를 통해서 개념과 원리의 대해서 쉽게 이해할 수 있었다. 남아 있는 수업에서는 테스트 결과를 보고서 기반으로 만드는 법에 배울 수 있다. 앞으로 2번의 수업이 남아있다 화이팅!!
https://bit.ly/3D9XCOz