Я использовал Python для написания кода, который входит в систему, этот код делает работу в моем университете,
# The selenium.webdriver module provides all the WebDriver implementations. get it online, [I got the module from here][1]
from selenium import webdriver
# The Keys class provide keys in the keyboard like RETURN, F1, ALT etc.
from selenium.webdriver.common.keys import Keys
# here, a instance of Firefox WebDriver is created. You can do it for various browsers
driver = webdriver.Firefox()
# The driver.get method will navigate to a page given by the URL.
#WebDriver will wait until the page has fully loaded (that is, the “onload” event has fired)
# before returning control to your test or script.
# It’s worth noting that if your page uses a lot of AJAX on load then WebDriver may not know when it has completely loaded. so please be patient
driver.get("https://192.168.20.1/auth1.html")
# The next line is an assertion to confirm that title has “Sonic” word in it: (not really neccesary :p)
# This is used to confirm that the webpage is the right one
assert "Sonic" in driver.title
# we use the 'name' tag to get a handle to the username and password this finds the appropriate box.
user = driver.find_element_by_name("userName")
passwd = driver.find_element_by_name("pwd")
# use the 'send_keys' function to set the "box's" values to your password and username
user.send_keys("<your username>")
passwd.send_keys("<your password>")
# we sumbit the form
passwd.send_keys(Keys.RETURN)
# we close the window after logging in, the popup which takes care of the 3 hour windows remains open.
driver.close()
Теперь есть много моментов для решения,
как вы могли заметить, я использовал URL, по которому я перехожу, чтобы войти в систему как "https://192.168.20.1/auth1.html" not "https://192.168.20.1/auth.html"
как в В моем колледже они установили фрейм, в основном я не мог использовать 'find_element_by_name' или любые другие функции на этом сайте. Это может варьироваться в зависимости от института до института, проверить его, читая исходный код вашего института в тщательно
также я использовал 'userName' и 'pwd' в качестве имени поля формы. Это не должно быть правдой для вас, проверьте это тоже.
Теперь этот код будет входить в систему только в том случае, если вы выполните его. Вы можете поместить это в петлю и поставить задержку в 2,5 часа. Я планирую сохранить его в фоновом режиме, и если компьютер подключится к Wi-Fi, скрипт будет уведомлен (я мог бы использовать некоторую помощь здесь), и код может начаться с запроса на "страницу аутентификации", если есть ошибка 404, а затем нарушить другой мудрый запуск кода. (библиотека запросов может помочь с этими вещами)
#checks for 404 error
check=requests.head(url)
if check.status_code==404:
break
Python - отличный язык, вы можете работать над ним дальше, но я не думаю, что будет трудно перенести его на ruby, поскольку селен также доступен в ruby.
пожалуйста, не стесняйтесь обращаться ко мне, так как я работаю над переносом этого кода и реализации дополнительных функций для Android и т. д.