【selenium实现自动联网】

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

安装selenium、python环境


一、安装Selenium

Selenium官网

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

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

二、安装第三方WebDriver驱动

官方网站

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

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

  1. 查看当前浏览器版本
    【selenium实现自动联网】_第1张图片

  2. 在网站上下载对应版本驱动(chrome)
    【selenium实现自动联网】_第2张图片
    【selenium实现自动联网】_第3张图片

  3. 解压至本地项目文件夹,例如本文解压至D:\otherTools\Inter\chromedriver_win32
    【selenium实现自动联网】_第4张图片
    注意:main.py为selenium实现代码,为方便可与下载驱动放在同一文件夹下

  4. 在系统变量Path中添加驱动所在目录
    【selenium实现自动联网】_第5张图片

  5. 在cmd中输入chromedriver查看是否添加成功
    【selenium实现自动联网】_第6张图片

三、实现代码

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虚拟环境

【selenium实现自动联网】_第7张图片


总结

你可能感兴趣的:(selenium,chrome,python,经验分享)