-
-
Save komputronika/2b74f59b8f4a94f591b4045f2132d91f to your computer and use it in GitHub Desktop.
Script untuk menyimpan tangkap-layar dari laman KPU, dengan terlebih dulu memilih TPS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Sebagai kelanjutan dari script saya sebelumnya (save_screenshot.py) | |
# Script ini membuka laman kpu, memilih berurutan Propinsi, Kabupaten, Kecamatan, Kelurahan dan TPS | |
# Di penghujung proses, dilakukan penyimpanan screenshot. | |
# Sebagai POC, saya batasi saja 5 TPS | |
from selenium import webdriver | |
from selenium.webdriver.common.by import By | |
from selenium.webdriver.support.ui import WebDriverWait | |
from selenium.webdriver.support import expected_conditions as EC | |
from datetime import datetime | |
import time | |
browser = webdriver.Chrome() | |
browser.get('https://pemilu2019.kpu.go.id/#/ppwp/hitung-suara/') | |
wait = WebDriverWait(browser, 10) | |
for i in range(5): | |
states = browser.find_elements_by_class_name('form-group')[-1] | |
# jika koneksi kurang bagus, kadang element belum siap diklik, jadi perlu beri jeda | |
try: | |
states.click() | |
except: | |
time.sleep(5) # jeda lima detik. bisa diubah. | |
states = browser.find_elements_by_class_name('form-group')[-1] | |
states.click() | |
substate = wait.until(EC.presence_of_element_located((By.TAG_NAME, 'li'))) | |
substate.click() | |
time.sleep(5) #kembali memberi jeda agar render selesai. lebih baik kalau pakai browser wait. | |
pindai = wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'my-2'))) | |
buttons = browser.find_elements_by_class_name('btn-dark') | |
for btn in buttons: | |
if btn.text.strip() == 'Lihat Form Pindai C1': | |
btn.click() | |
#scroll ke posisi terbawah | |
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);") | |
time.sleep(5) #jeda hanya kalau koneksi kurang bagus | |
title = browser.find_element_by_class_name('page-subtitle').text | |
browser.save_screenshot(title+'-'+datetime.now().strftime('%Y-%m-%d %H:%i:%s')+'.png') | |
browser.quit() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment