본문 바로가기

자동화/Selenium

버거킹 설문조사 Selenium으로 자동화하기

728x90

버거킹 설문조사를 하면 무료 세트 업그레이드를 할 수 있는데 설문조사 항목도 많고 귀찮을 때가 많습니다.

이걸 자동화하면 편리하게 사용할 수 있을거 같아서 코드로 작성하였습니다.

 

버거킹 설문조사 항목을 보면 2가지 케이스로 나눌수 있는데

항목 중 하나를 선택하는 케이스와 만족도를 조사하는 케이스로 나눌 수 있습니다.

 

공통점을 찾아 반복되는 코드를 2가지 함수로 구분하였습니다.

 

def menuClick(ID): #메뉴 버튼 클릭 함수
    driver.find_element(By.ID, ID).click()
    driver.find_element(By.ID, 'NextButton').click()
    time.sleep(2)
def radioClick(num): #라디오 버튼 클릭 함수
    for i in range(1, num):
        driver.find_elements(By.CLASS_NAME, 'c4')[i].click()
    driver.find_element(By.ID, 'NextButton').click()
    time.sleep(2)

 

코드 내 설문조사 코드만 넣고 실행하면 검증 코드를 결과값으로 얻을 수 있습니다.

설문조사 항목은 고정으로 선택하는데 실제 구매한 메뉴와 달라도 검증 코드를 얻을 수 있어서 자동화로 아무거나 선택해도 괜찮아 보입니다. (막히지 않기를...!!!)

 

자동화를 통해 편리하게 버거킹 무료 업그레이드 해서 맛있게 먹어봐요!! (추후 파일로 추출해서 더 편리하게 사용할 수도..??)

 

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import time

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

driver.get('https://kor.tellburgerking.com')
time.sleep(2)

driver.find_element(By.ID, 'QR~QID65~6').send_keys('설문조사코드숫자로') #설문조사 코드 입력 ('-' 제외하고 숫자만)
driver.find_element(By.ID, 'NextButton').click()
time.sleep(2)

def menuClick(ID): #메뉴 버튼 클릭 함수
    driver.find_element(By.ID, ID).click()
    driver.find_element(By.ID, 'NextButton').click()
    time.sleep(2)

def radioClick(num): #라디오 버튼 클릭 함수
    for i in range(1, num):
        driver.find_elements(By.CLASS_NAME, 'c4')[i].click()
    driver.find_element(By.ID, 'NextButton').click()
    time.sleep(2)

#각 항목 자동 클릭
menuClick('QID5-3-label')
menuClick('QID7-2-label')
menuClick('QID10-1-label')
radioClick(4)
radioClick(3)
menuClick('QID63-1-label')
menuClick('QID30-2-label')
menuClick('QID36-1-label')
menuClick('QID38-136-label')
menuClick('QID39-13-label')
menuClick('QID40-14-label')
radioClick(7)
menuClick('QID43-3-label')

driver.find_element(By.ID, 'NextButton').click()
time.sleep(2)

#검증 코드 결과값 출력
print(driver.find_element(By.XPATH, '//*[@id="EndOfSurvey"]/strong[1]').text)

driver.close()
728x90