【Python】基于Selenium实现上海大学校园网自动登录

【Python】基于Selenium实现上海大学校园网自动登录

安装selenium

Selenium官网
以anaconda环境为例,创建一个Selenium的虚拟环境,若不需要可以不做第一、二步

  1. conda create -n selenium python==3.8
  2. conda activate selenium
  3. conda install selenium 或者 pip install selenium

安装第三方WebDriver驱动

官方网站

  1. 首先明确自己需要使用的浏览器,第三方插件包含有MozillaChromeOperaEdge火狐、Safari等
  2. 查看自己浏览器的版本,自行查找方法
  3. 下载对应的第三方插件版本,点击上面浏览器名的超链接即可(Safari不用下)
  4. 将插件所在的目录添加到系统环境变量中,方法自行查找

以Windows 10 下的Chrome为例,安装第三方插件流程如图所示:

  1. 查看当前浏览器版本
    在这里插入图片描述
  2. 网站上下载对应版本驱动(Chrome)
    在这里插入图片描述
    在这里插入图片描述
  3. 解压至项目文件夹,本文解压至F:\Desktop\school
    在这里插入图片描述
    在这里插入图片描述
  4. 在系统变量Path中添加驱动所在目录
    在这里插入图片描述
  5. 在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 = 'XXXXXXX'
password = 'XXXXXXX'

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()

每10分钟检测一次是否断网,若断网则重新连接
尝试用过driver.find_element(By.ID, "pwd").send_keys(password)但有问题,不知道怎么解决就用了代码里的方案
我觉得可能是pwd的那个input标签的type="password"或者是style="display: none;"
只是初步了解selenium使用,期待大哥解答。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值