情况说明
本文是为了解决校园网,需要重复进行输入固定身份信息ℹ️登录的问题,可以简化操作。本文使用的是selenium框架,使用谷歌浏览器作为演示
本教程以本人学校的校园网验证页面为例,经过教程的学习,各位可以自行对你们的学校的校园网进行分析,原理大差不差!有偏薄的地方还请大佬指教!!!
所需环境
1.Python环境安装
Python环境安装过程网上有很多简介,在这里就不过多赘述了,大家可以自行上网一下下
2.selnium安装
- win + r 打开cmd命令行窗口
- 在命令行窗口输入指令
pip install selenium
大多数没安装过的设备会直接安装成功,如果你的💻在这一步提示未安装,请自行根据代码提示进行操作,网上别的博客都有详细的安装教程,我们这里就阐述一个最基本的安装啦!!!
出现⬇️图状态,代表安装成功
3.浏览器版本查看
查看浏览器版本位置如图(浏览器右上角↗️三个点,点开)查看浏览器版本
4.下载浏览器驱动
⏬地址:
a. 火狐:https://github.com/mozilla/geckodriver/releases/
b. 谷歌:https://registry.npmmirror.com/binary.html?path=chromedriver/
低版本可以通过阿里云镜像,高版本无法下载的可以使用在线地址Chrome for Testing availability 下载对应版本的driver
下载过程中,大版本保持一致就可以了
下载完成后,解压文件夹,然后拖动.exe文件进入一个英文目录里如⬇️图:
5.配置环境变量
步骤:
此电脑-->右键-->属性-->高级(环境变量)-->path
图片示例:
⚠️:此处的地址就是你第四步安装的位置!!!
分析页面
1. 本人学校的页面如下,使用浏览器调试工具(f12),查看页面源码
本文以第一个文本框为例
2. 点击左上角,此时在使用鼠标点击对应的对话框,此时可以定位到我们的对话框元素,如下图
3. 接下来的操作步骤如图:
该步骤的目的是为了定位,此处我们建议选择XPath,虽然复杂,但操作简便,这么小的程序也不用考虑代码的性能,能用就行!!!
例如此处我获得的XPath路径为:
//*[@id="edit_body"]/div[3]/div[1]/div/div[2]/div[1]/div/form/input[3]
进行代码的编写
此为完整代码示例(只正对本人学校的校园网)
# 导包
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
# 获取浏览器对象
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
# 打开url
driver.get('http://10.2.255.26/a79.htm')
# 输入身份证号
driver.find_element(By.XPATH, '//*[@id="edit_body"]/div[3]/div[1]/div/div[2]/div[1]/div/form/input[3]').send_keys(
"XXXXXXXX")
# 输入密码
driver.find_element(By.XPATH, '//*[@id="edit_body"]/div[3]/div[1]/div/div[2]/div[1]/div/form/input[4]').send_keys(
"888888")
# check复选框勾选
# driver.find_element(By.XPATH, '//*[@id="edit_body"]/div[3]/div[1]/div/div[2]/div[1]/div/form/input[6]').click()
element = driver.find_element(By.XPATH, '//*[@id="edit_body"]/div[3]/div[1]/div/div[2]/div[1]/div/form/input[6]')
driver.execute_script("arguments[0].click();", element)
# # 下拉框选择中国移动
# dropdown = driver.find_element(By.XPATH, '//*[@id="edit_body"]/div[3]/div[1]/div/div[2]/div[1]/div/select')
# options = dropdown.find_elements(By.TAG_NAME, "option")
# options[3].click()
el = driver.find_element(By.CSS_SELECTOR, "select")
sleep(2)
sel=Select(el)
sel.select_by_visible_text("中国电信")
sleep(2)
# 点击确定按钮
element = driver.find_element(By.XPATH, '//*[@id="edit_body"]/div[3]/div[1]/div/div[2]/div[1]/div/form/input[2]')
driver.execute_script("arguments[0].click();", element)
# 暂停3秒
sleep(2)
# 关闭浏览器
driver.quit()
不同校园网进行更改的代码部分
# 导包
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
# 获取浏览器对象
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
# 打开url
driver.get('1.学校登录网址')
# 输入身份证号
driver.find_element(By.XPATH, '2.获取的XPath路径').send_keys(
"3.身份证信息")
# 输入密码
driver.find_element(By.XPATH, '4.获取的XPath路径').send_keys(
"5.密码")
# check复选框勾选
element = driver.find_element(By.XPATH, '6.获取的复选框的XPath路径')
driver.execute_script("arguments[0].click();", element)
# 下拉框选择
el = driver.find_element(By.CSS_SELECTOR, "select")
sleep(2)
sel=Select(el)
sel.select_by_visible_text("中国电信")
sleep(2)
# 点击确定按钮
element = driver.find_element(By.XPATH, '确定按钮XPath路径')
driver.execute_script("arguments[0].click();", element)
# 暂停3秒
sleep(2)
# 关闭浏览器
driver.quit()
至此点击运行✅,就可以运行啦!!!
如果有需要的同学可以自行搜一下怎么打包成exe文件,然后放置桌面,下次运行就会很方便哦!!!
写在最后
本文是本人在学习自动化测试的过程🀄️自行编写的一个程序,只是为了偷点懒省的每次输密码和身份信息,本人在此声明,本程序不存在任何破解校园网的操作,只是通过自动化操作解放双手,本来就没有账号的同学建议去校园网络中心办理后再进行愉快的上网操作哦!!!
本文操作也是十分生疏,部分代码存在缺陷,👏各位大佬评论区指教!!!
另如果是同校的小朋友,应该是会很熟悉登录页面,可以私我哦,直接打包源码发你就可以啦!!!各位如果有需要帮助的,我能帮上一定帮,欢迎私信骚扰!!!