쿠폰세팅 자동화

제리·2022년 3월 14일
0
# 쿠폰세팅

from select import select
from selenium import webdriver
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support.ui import Select

import pandas as pd
import time

driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://mallbo.epost.go.kr')


time.sleep(5)

# 로그인
e = driver.find_element_by_xpath('//*[@id="id"]')
e.send_keys('jwhan311')

e = driver.find_element_by_xpath('//*[@id="pw"]')
e.send_keys('posa02144!')

e = driver.find_element_by_id('login_btn')
e.click()

# 경고창처리
time.sleep(1)

try:
    da = Alert(driver)
    da.accept()
except:
    print('알람창없음')

# 쿠폰생성 진입
time.sleep(1)

e = driver.find_element_by_xpath('//*[@id="M2138"]/a')
e.click()

time.sleep(1)

e = driver.find_element_by_xpath('//*[@id="M2185"]/a')
e.click()

time.sleep(1)

e = driver.find_element_by_xpath('//*[@id="M2186"]/a')
e.click()

time.sleep(1)

e = driver.find_element_by_xpath('//*[@id="couponRegistPage"]')
e.click()

time.sleep(1)

# 엑셀파일 읽기
df1 = pd.read_csv('./temp.csv',encoding='UTF-8')
print(df1)
time.sleep(1)

for i in range(len(df1)):
    # 쿠폰명 입력
    driver.find_element_by_xpath('//*[@id="title"]').send_keys('쇼핑25시쿠폰 '+df1.iat[i,1])

    # 쿠폰메모 입력
    driver.find_element_by_xpath('//*[@id="memo"]').send_keys(df1.iat[i,1]+' / '+df1.iat[i,0])

    # 발행처 체크
    driver.find_element_by_xpath('//*[@id="cpCmpCd_3"]').click()

    # 프로모션코드 조회버튼 클릭
    driver.find_element_by_xpath('//*[@id="Pm_popup"]').click()
    time.sleep(1)

    # 팝업창으로 이동
    driver.switch_to.window(driver.window_handles[1])

    # 프로모션코드 콤보박스설정
    select=Select(driver.find_element_by_xpath('//*[@id="searchType"]'))
    select.select_by_value('02')

    # 프로모션코드 입력
    driver.find_element_by_xpath('//*[@id="search_text"]').send_keys(str(df1.iat[i,2]))

    # 조회 클릭
    driver.find_element_by_xpath('//*[@id="search_btn"]').click()
    time.sleep(1)

    # 프로모션 클릭
    driver.find_element_by_xpath('//*[@id="1"]').click()

    # 선택 클릭
    driver.find_element_by_xpath('//*[@id="btnInput"]').click()

    # 원래창으로 이동
    driver.switch_to.window(driver.window_handles[0])
    time.sleep(1)

    # 발행위치 선택
    driver.find_element_by_xpath('//*[@id="cpnIssueMethCd_C"]').click()

    # 복수발급 설정 - 설정함, 9999
    driver.find_element_by_xpath('//*[@id="compnoIssueYn_Y"]').click()
    driver.find_element_by_xpath('//*[@id="compnoMaxIssueCnt"]').send_keys('9999')

    # 발행범위 설정 - 상품지정
    driver.find_element_by_xpath('//*[@id="cpnGoodsAppnCd_G"]').click()

    # 쿠폰적용수량 설정 - 전체
    driver.find_element_by_xpath('//*[@id="cpnApplyCntCd_2"]')

    # 할인액(율) 설정
    if df1.iat[i,3] == True:
        driver.find_element_by_xpath('//*[@id="dcDivCd_2"]').click()
        driver.find_element_by_xpath('//*[@id="rateType"]').send_keys(str(df1.iat[i,4]).strip().replace('%',''))
    else:
        driver.find_element_by_xpath('//*[@id="amount"]').send_keys(str(df1.iat[i,4]).strip().replace(',',''))

    # 등록버튼 클릭
    driver.find_element_by_xpath('//*[@id="btnRegist"]').click()

    # # (임시) 쿠폰발행조회버튼 클릭
    # driver.find_element_by_xpath('//*[@id="couponListPage"]').click()

    # 경고창처리
    time.sleep(1)

    try:
        da = Alert(driver)
        da.accept()
    except:
        print('알람창없음')

    # 경고창처리2
    time.sleep(1)

    try:
        da = Alert(driver)
        da.accept()
    except:
        print('알람창없음')

    # 상품지정 클릭
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="1"]/td[14]/a').click()
    time.sleep(1)

    # 팝업창1으로 이동
    driver.switch_to.window(driver.window_handles[1])
    time.sleep(1)

    # 상품일괄등록(TEXT) 클릭
    driver.find_element_by_xpath('//*[@id="btnSearchText"]').click()

    # 팝업창2으로 이동
    driver.switch_to.window(driver.window_handles[2])
    time.sleep(1)

    # 상품코드 입력
    driver.find_element_by_xpath('//*[@id="search_text_arr"]').send_keys(df1.iat[i,5])

    # 조회 클릭
    driver.find_element_by_xpath('//*[@id="search_btn"]').click()
    time.sleep(1)

    # 상품 선택
    driver.find_element_by_xpath('//*[@id="1"]').click()

    # 선택완료 클릭
    driver.find_element_by_xpath('//*[@id="regist_btn"]').click()

    # 경고창처리
    time.sleep(1)

    try:
        da = Alert(driver)
        da.accept()
    except:
        print('알람창없음')

    time.sleep(1)

    # 팝업창1으로 이동
    driver.switch_to.window(driver.window_handles[1])
    time.sleep(1)

    # 경고창처리2
    time.sleep(1)

    try:
        da = Alert(driver)
        da.accept()
    except:
        print('알람창없음')

    time.sleep(1)

    # 닫기
    driver.find_element_by_xpath('//*[@id="btnCancel"]').click()
    time.sleep(1)

    # 원래창으로 이동
    driver.switch_to.window(driver.window_handles[0])
    time.sleep(1)

    # 프로모션 운영관리 메뉴 진입
    driver.find_element_by_xpath('//*[@id="M2181"]/a').click()
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="M2183"]/a').click()
    time.sleep(10)

    # 30일 후 선택
    driver.find_element_by_xpath('//*[@id="searchTable"]/tbody/tr[3]/td/a[10]').click()

    # 조회구분 설정
    select=Select(driver.find_element_by_xpath('//*[@id="searchType"]'))
    select.select_by_value('02')

    # 프로모션코드 입력
    driver.find_element_by_xpath('//*[@id="searchCont"]').send_keys(str(df1.iat[i,2]))

    # 조회 클릭
    driver.find_element_by_xpath('//*[@id="btnSearch"]').click()
    time.sleep(3)

    # 상세보기 클릭
    driver.find_element_by_xpath('//*[@id="1"]/td[16]/a').click()
    time.sleep(1)

    # 팝업창1으로 이동
    driver.switch_to.window(driver.window_handles[1])
    time.sleep(1)

    # 상품코드 입력
    driver.find_element_by_xpath('//*[@id="txGoods"]').send_keys(str(df1.iat[i,5]))
    # 쿠폰상태 - 등록
    select = Select(driver.find_element_by_xpath('/html/body/div[1]/article/div/form[2]/div[1]/table[2]/tbody/tr[3]/td[2]/span/select'))
    select.select_by_value('01')

    # 조회 클릭
    driver.find_element_by_xpath('//*[@id="btnSearch"]').click()
    time.sleep(1)

    # 설정
    driver.find_element_by_xpath('//*[@id="1"]/td[8]/a').click()
    time.sleep(1)

    # 팝업창2으로 이동
    driver.switch_to.window(driver.window_handles[2])
    time.sleep(1)

    # 예외처리 클릭
    driver.find_element_by_xpath('//*[@id="myForm"]/div/table[2]/tbody/tr[1]/td/input[1]').click()

    # 예외처리날짜 세팅
    driver.execute_script("""var 할인기간시작일 = '"""+str(df1.iat[i,0])+"""'
    $( "#txDstrtYmd" ).datepicker( "setDate", 할인기간시작일);
    $( "#txDendYmd" ).datepicker( "setDate", 할인기간시작일);
    $( "#txCstrtYmd" ).datepicker( "setDate", 할인기간시작일);
    $( "#txCendYmd" ).datepicker( "setDate", 할인기간시작일);
    $("input:radio[name='ecptYn']:input[value='Y']").attr("checked",true);""")

    # 수정 클릭
    driver.find_element_by_xpath('//*[@id="btnRegist"]').click()

    # 경고창처리
    time.sleep(1)

    try:
        da = Alert(driver)
        da.accept()
    except:
        print('알람창없음')

    time.sleep(1)

    # 경고창처리2
    time.sleep(1)

    try:
        da = Alert(driver)
        da.accept()
    except:
        print('알람창없음')

    time.sleep(1)

    # 팝업창1으로 이동
    driver.switch_to.window(driver.window_handles[1])
    time.sleep(1)

    # 체크박스 클릭
    driver.find_element_by_xpath('//*[@id="jqg_gridList_1"]').click()

    # 쿠폰승인
    driver.find_element_by_xpath('//*[@id="appr_btn"]').click()
    time.sleep(1)

    # 경고창처리
    time.sleep(1)

    try:
        da = Alert(driver)
        da.accept()
    except:
        print('알람창없음')

    time.sleep(1)

    # 경고창처리2
    time.sleep(1)

    try:
        da = Alert(driver)
        da.accept()
    except:
        print('알람창없음')

    time.sleep(1)

    # 닫기
    driver.find_element_by_xpath('//*[@id="btnCancel"]').click()
    time.sleep(1)

    # 원래창으로 이동
    driver.switch_to.window(driver.window_handles[0])
    time.sleep(1)

    # 쿠폰생성 진입
    time.sleep(1)

    e = driver.find_element_by_xpath('//*[@id="M2185"]/a')
    e.click()

    time.sleep(1)

    e = driver.find_element_by_xpath('//*[@id="M2186"]/a')
    e.click()

    time.sleep(1)

    e = driver.find_element_by_xpath('//*[@id="couponRegistPage"]')
    e.click()

    time.sleep(1)
profile
iOS 준비중

0개의 댓글