[Python] 자가진단 매크로 (2021.7.29 기준)

2021. 7. 29. 14:53Python

반응형

0. 사용법

  • Python, Selenium 설치
  • Linux: Crontab 등의 스케줄러 사용
  • Windows: 윈도우 작업 스케줄러 사용
    • Python파일 실행하는 배치파일 생성
    • 최고 권한으로 등록 시 절전모드에서도 사용가능

1. Code

  • area(지역), school_level(학교급) : 아래 리스트에서 선택

지역별 Value

  • school_name(학교 이름, 정확히), name, birth(YYMMDD), password(4자리)
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support.ui import Select
import time

area = '10'
school_level = '4'
school_name = 'XXXX고등학교'
name = 'OOO'
birth = '010123'
password = '0123'

driver = webdriver.Firefox()
driver.get('https://hcs.eduro.go.kr')
driver.find_elements_by_id('btnConfirm2')[0].click()
time.sleep(1)
driver.find_elements_by_class_name('searchBtn')[0].click()
time.sleep(1)

select = Select(driver.find_elements_by_tag_name('select')[0])
select.select_by_value(area)
select = Select(driver.find_elements_by_tag_name('select')[1])
select.select_by_value(school_level)

login = driver.find_element_by_class_name("searchArea");
login.send_keys(school_name)

time.sleep(1)
driver.find_elements_by_tag_name('td')[3].click()
time.sleep(1)
driver.find_element_by_partial_link_text(school_name).click()
time.sleep(1)
driver.find_elements_by_class_name('layerFullBtn')[0].click()
time.sleep(1)

login = driver.find_elements_by_class_name("input_text_common")[1]
login.send_keys(name)
login = driver.find_elements_by_class_name("input_text_common")[2]
login.send_keys(birth)

element = driver.find_element_by_id('btnConfirm')
driver.execute_script("arguments[0].click();", element)
time.sleep(1)

driver.find_element_by_class_name('input_text_common').click()
time.sleep(0.5)
driver.find_element_by_css_selector(f'div[aria-label=\'{password[0]}\']').click()
time.sleep(0.5)
driver.find_element_by_css_selector(f'div[aria-label=\'{password[1]}\']').click()
time.sleep(0.5)
driver.find_element_by_css_selector(f'div[aria-label=\'{password[2]}\']').click()
time.sleep(0.5)
driver.find_element_by_css_selector(f'div[aria-label=\'{password[3]}\']').click()
time.sleep(0.5)

time.sleep(1)
driver.find_element_by_id('btnConfirm').click()
time.sleep(1)

driver.find_elements_by_class_name('btn')[0].click()
time.sleep(1)
driver.find_elements_by_tag_name('label')[0].click()
driver.find_elements_by_tag_name('label')[2].click()
driver.find_elements_by_tag_name('label')[4].click()
driver.find_elements_by_id('btnConfirm')[0].click()
time.sleep(1)
driver.quit()
반응형