Firefox

Install firefox:

sudo apt-get update
sudo apt-get install firefox

Selenium

pip install selenium

Geckodriver

  1. Download geckodriver from https://github.com/mozilla/geckodriver/releases
  2. Unpack and copy geckodriver to /usr/local/bin
sudo mv geckodriver /usr/local/bin/geckodriver
sudo chmod +x /usr/local/bin/geckodriver

Run

python3 run.py
1 from selenium import webdriver
2 from selenium.webdriver.common.keys import Keys
3 from selenium.webdriver.common.by import By
4 from selenium.webdriver.support.ui import WebDriverWait
5 from selenium.webdriver.support import expected_conditions as EC
6 from time import time, sleep
7 import json, os
8
9 def answer_question(driver):
10 # Output
11 Output = {}
12
13 # Start
14 BtnStart = WebDriverWait(driver, 30).until(
15 EC.presence_of_element_located((By.XPATH, "//a[@class='kie']"))
16 )
17 driver.execute_script("arguments[0].click();", BtnStart)
18
19 # Wait Question
20 sleep(5)
21
22 # Question
23 Question = WebDriverWait(driver, 30).until(
24 EC.presence_of_element_located((By.CLASS_NAME, "size-24"))
25 )
26 print(" * Question:", Question.text)
27 Output["Question"] = Question.text
28
29 # Wait AnswerColumn
30 sleep(5)
31
32 # Column
33 AnswerColumn = driver.find_elements_by_name("jwb[]")
34 print(" * Total Column:", len(AnswerColumn))
35 for Column in AnswerColumn:
36 Value = Column.get_property("value")
37 if not Value:
38 Column.clear()
39 Column.send_keys("#")
40
41 # Press Yes
42 BtnOK = driver.find_element_by_id("cmdOk")
43 driver.execute_script("arguments[0].click();", BtnOK)
44 BtnLock = driver.find_element_by_id("cmdKunci")
45 driver.execute_script("arguments[0].click();", BtnLock)
46 BtnYes = driver.find_element_by_id("cmdJawabanBenar")
47 driver.execute_script("arguments[0].click();", BtnYes)
48
49 # Wait for Answer
50 sleep(10)
51
52 # Column
53 RealAnswer = driver.find_elements_by_name("jawabanbenar")
54 Answer = []
55 for Column in RealAnswer:
56 Value = Column.get_property("value")
57 Answer.append(Value)
58 print(" * Answer:", Answer)
59 Output["Answer"] = Answer
60
61 # Accept
62 driver.execute_script("terima();")
63 # Sleep
64 sleep(5)
65 # Return
66 return Output
67
68 def run():
69 # Data
70 Data = []
71 try:
72 # Init
73 driver = webdriver.Firefox()
74 driver.get("https://www.teka-teki-sulit.dwicandra.xyz/")
75 driver.execute_script("mode_biasa('user');")
76
77 # Answer
78 for I in range(1, 33):
79 print(" * Question Number:", I)
80 Answer = answer_question(driver)
81 if Answer:
82 Data.append(Answer)
83 print("")
84
85 except Exception as e:
86 raise e
87
88 finally:
89 # Dump
90 Filename = str(int(time())) + '.txt'
91 with open(Filename, 'w') as outfile:
92 json.dump(Data, outfile)
93
94 # Quit
95 driver.quit()
96
97 # Run!
98 run()
1 * Question Number: 1
2 * Question: YANG SUKA MAKAN PISANG?
3 * Total Column: 6
4 * Answer: ['B', 'A', 'N', 'Y', 'A', 'K']
5
6 * Question Number: 2
7 * Question: YANG SERING MENDAPAT NILAI 100 SAAT ULANGAN
8 * Total Column: 6
9 * Answer: ['S', 'A', 'N', 'T', 'A', 'I']

Comments (0)