-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
116 lines (91 loc) · 4.05 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
from selenium import webdriver
from selenium.webdriver.common.by import By
from datetime import datetime
import time
#Global Var input
percobaan_ke = 1
start_time = datetime.now() # Kalkulasi waktu register
print("Masukkan NISN: ", end="")
nisn = input()
print("Masukkan NPSN: ", end="")
npsn = input()
print("Masukkan Tanggal Lahir, Contoh (26022004): ", end="")
tgl_lahir = input()
print("\nMemulai Register Otomatis..")
print("******************************")
def task():
time.sleep(1)
global percobaan_ke
# Buka link
link = 'https://reg.ltmpt.ac.id/reg/siswa/'
print("Opening link : " + link )
driver.get(link)
#Cek Fatal error
response_fatalerror = driver.find_elements(By.TAG_NAME, 'b')
for e in response_fatalerror:
#print("DEBUG: " + e.text)
if 'Fatal error' == e.text or "Fatal error" == e.text:
print("Gagal mengirim, Response Error: Fatal error")
percobaan_ke = percobaan_ke + 1
print("Mencoba lagi, percobaaan ke " + str(percobaan_ke) + "..")
print("******************************\n")
return "Fatal error"
#print("=======")
print("Mencari semua tag input..")
# Assign input tag
nisn_input = driver.find_element_by_id("nisn")
npsn_input = driver.find_element_by_id("npsn")
tgllahir_input = driver.find_element_by_id("tgl_lahir")
print("Mengisi data input..")
# Isi nilai input nya
nisn_input.send_keys(nisn)
npsn_input.send_keys(npsn)
tgllahir_input.send_keys(tgl_lahir)
print("Mencoba mengirim data..")
#Send Form
button = driver.find_element_by_id("btn-submit")
button.click()
# Cek if failed
try:
response_alert = driver.find_elements(By.CLASS_NAME, 'alert-heading')
for e in response_alert:
#print(e.text)
print("Gagal Mengirim, Response Error: " + e.text)
percobaan_ke = percobaan_ke + 1
print("Mencoba lagi, percobaaan ke " + str(percobaan_ke) + "..")
print("******************************\n")
return e.text
#return "Terjadi masalah dengan API Pusdatin Kemdikbud"
#print("=======")
print("Berhasil Mengirim data!!!")
return "berhasil"
finally:
pass
# =================================== #
driver = webdriver.Chrome()
request = task()
# For debuggin only
#request = request + " Test"
while request != "berhasil":
if request == "Isian registrasi tidak sesuai":
print("##############################################")
print("Isian registrasi tidak sesuai\n")
print("Data isian yang Anda masukkan tidak sesuai dengan data yang tercatat di basis data Kemdikbud/Kemenag. Mohon periksa kembali isian Anda secara seksama.")
print("\nProses dihentikan..")
input('\n\nTekan Apa Saja untuk exit dari Browser Chrome..')
input('1x Lagi Enter')
driver.close() #Close Chrome
driver.quit() #Close chromedriver.exe
exit()
break
else:
request = task()
#Berhasil register
print("##############################################")
print("SELAMAT, ANDA BERHASIL MENGIRIM DATA!, Silahkan diisi data sebelum aplikasi dimatikan!")
time_elapsed = datetime.now() - start_time
print('Waktu lama anda register selama (hh:mm:ss.ms) {}'.format(time_elapsed))
input('\n\nTekan Apa Saja untuk exit dari Browser Chrome!, Pastikan udah diisi datanya!')
input('1x Lagi Enter')
driver.close() #Close Chrome
driver.quit() #Close chromedriver.exe