Skip to content

Instantly share code, notes, and snippets.

@V3YNjKbFGLSQ0FzpOu1s
Forked from yasinkuyu/Zyxel.py
Last active July 12, 2024 22:52
Show Gist options
  • Save V3YNjKbFGLSQ0FzpOu1s/0d566925c91e61534436dd1d0a93da9f to your computer and use it in GitHub Desktop.
Save V3YNjKbFGLSQ0FzpOu1s/0d566925c91e61534436dd1d0a93da9f to your computer and use it in GitHub Desktop.
Selenium Python Zyxel (VMG3312-B10B) Router Reboot
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
def reboot():
print("Rebooting router...")
options = Options()
options.headless = True
driver = webdriver.Firefox(options=options)
driver.get("http://192.168.1.1/login/login.html")
username = driver.find_element_by_id("AuthName")
password = driver.find_element_by_id("AuthPassword")
login = driver.find_element_by_xpath('//*[@id="login"]/fieldset/ul/li[6]/input')
username.send_keys("admin")
password.send_keys("1234")
login.send_keys(Keys.ENTER)
try:
element_to_hover_over = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "maintenance"))
)
finally:
hover = ActionChains(driver).move_to_element(element_to_hover_over)
hover.perform()
time.sleep(15)
reboot = driver.find_element_by_id("maintenance-reboot")
reboot.click()
try:
iframe = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "mainFrame"))
)
finally:
driver.switch_to.frame(iframe)
time.sleep(10)
reboot_button = driver.find_element_by_name("sysSubmit")
reboot_button.click()
time.sleep(270)
driver.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment