본문 바로가기
[QA셀레니움웹자동화]

[코멘토 실무PT 후기 챌린지_QA자동화 강의 3주차 강의]

by 슬쨩! 2024. 1. 16.

 

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