基于Selenium实现上海大学校园网自动登录
安装selenium、python环境
一、安装Selenium
以anaconda
环境为例,创建一个名为env_selenium的虚拟环境,若不需要可以不做第一、二步:
conda create -n selenium python==3.8
conda activate selenium
conda install selenium
或者pip install selenium
二、安装第三方WebDriver驱动
以Windows 10 下的Chrome为例,安装第三方插件流程如图所示:
-
查看当前浏览器版本
-
在网站上下载对应版本驱动(chrome)
-
解压至本地项目文件夹,例如本文解压至
D:\otherTools\Inter\chromedriver_win32
注意:main.py为selenium实现代码,为方便可与下载驱动放在同一文件夹下 -
在系统变量
Path
中添加驱动所在目录
-
在cmd中输入chromedriver查看是否添加成功
三、实现代码
from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import socket
import time
username = 'XXXXXXXX' # 学号
password = 'XXXXXXXXXXX' # 密码
def is_net_ok():
driver_test = Chrome()
driver_test.implicitly_wait(10)
try:
driver_test.get("http://10.10.9.9:8080")
online_text = driver_test.find_element(By.ID, "userMessage").text
driver_test.quit()
except Exception as e:
print(e)
return False
if online_text == "您已成功连接校园网!":
return True
else:
return False
def main():
while True:
if is_net_ok():
print("online! fine!")
time.sleep(600) # 设置检测间隔时间
else:
print("offline! sad!")
driver = Chrome()
try:
driver.get("http://10.10.9.9:8080")
driver.find_element(By.ID, "username").send_keys(username + Keys.ENTER + password)
driver.find_element(By.ID, "loginLink_div").click()
driver.quit()
time.sleep(5)
except Exception as e:
print(e)
driver.quit()
if __name__ == "__main__":
main()
本文设置,每十分钟检测一次电脑是否断网,若断网则自动重新连接
四、运行代码
main.
py文件
所在路径 D:\otherTools\Inter\chromedriver_win32
selenium
虚拟环境