python+selenium 简易地疫情信息自动打卡签到功能的实现代码


Posted in Python onAugust 22, 2020

由于学校要求我们每天都要在官网打卡签到疫情信息,多多少少得花个1分钟操作,程序员的尊严告诉我们坚决不能手动打卡。正巧最近学了selenium,于是画了个5分钟写了个自动打卡签到地小程序。

测试环境:python3.7 , selenium,chrome浏览器

seleium和chromedriver的配置在这里就不讲了,这里放个连接

首先找到学校信息门户的登录页:

http://my.hhu.edu.cn/login.portal

python+selenium 简易地疫情信息自动打卡签到功能的实现代码

#导入selenium中的webdriver
from selenium import webdriver
import time
url = 'http://my.hhu.edu.cn/login.portal' #信息门户的登陆页面
driver = webdriver.Chrome() # 初始化一个Chrome的驱动
driver.get(url) # 让自动化模块控制的Chrome浏览器跳转到信息门户登陆页面

这时候就该模拟登录了,首先找到用户名的input框。按ctrl+shift+c,打开开发者工具,点击用户名右边的input框,即可在右边的开发者工具中找到input框对应的代码。

python+selenium 简易地疫情信息自动打卡签到功能的实现代码
python+selenium 简易地疫情信息自动打卡签到功能的实现代码

右击该模块,点击copy->copy Xpath 。(Xpath是用来定位该input控件位置的)

root = '' #赋值自己的用户名
password = '' # 赋值自己的密码
driver.find_element_by_xpath('//*[@id="username"]').send_keys(root) #将xpath赋值在前面的括号中,通过send_keys方法给input赋值

#类似的,赋值密码框的xpath,赋值密码
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)

账号密码输完了,就该点击登陆了。按ctrl+shift+c,点击登录按钮,在右边的开发者工具对应的代码块右键copy->copy xpath,获得button的xpath。

driver.find_element_by_xpath('//*[@id="changeBack"]/tbody/tr/td[2]/table[1]/tbody/tr[2]/td/div/input[1]').click()
#通过click方法点击登录框,跳转到登陆后的页面

python+selenium 简易地疫情信息自动打卡签到功能的实现代码

在登陆后的页面中,找到了健康上报的功能框。点击该功能框,发现页面跳转到了签到页面:

python+selenium 简易地疫情信息自动打卡签到功能的实现代码

复制该页面的网址,让程序在登陆后跳转到该页面:

form = 'http://form.hhu.edu.cn/pdc/form/list'
driver.get(form)

让程序点击“本科生健康打卡:

driver.find_element_by_xpath('/html/body/div[1]/div[4]/div/section/section/div/a/div[2]').click()

会跳转到以下的页面

python+selenium 简易地疫情信息自动打卡签到功能的实现代码

点击提交,即完成签到

driver.find_element_by_xpath('//*[@id="saveBtn"]').click()

完整的程序:

from selenium import webdriver
import time
root = ''
password = ''
url = 'http://my.hhu.edu.cn/login.portal'
driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_xpath('//*[@id="username"]').send_keys(root)
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@id="changeBack"]/tbody/tr/td[2]/table[1]/tbody/tr[2]/td/div/input[1]').click()
form = 'http://form.hhu.edu.cn/pdc/form/list'
driver.get(form)
driver.find_element_by_xpath('/html/body/div[1]/div[4]/div/section/section/div/a/div[2]').click()
driver.find_element_by_xpath('//*[@id="saveBtn"]').click()

总结

到此这篇关于python+selenium 简易地疫情信息自动打卡签到功能的实现代码的文章就介绍到这了,更多相关python selenium自动打卡签到内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
linux环境下Django的安装配置详解
Jul 22 Python
python处理excel绘制雷达图
Oct 18 Python
python 多维高斯分布数据生成方式
Dec 09 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
解决使用Pandas 读取超过65536行的Excel文件问题
Nov 10 Python
Pycharm配置autopep8实现流程解析
Nov 28 Python
Python中for后接else的语法使用
May 18 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
Dec 24 Python
python进度条显示之tqmd模块
Aug 22 #Python
python 常见的排序算法实现汇总
Aug 21 #Python
Python制作数据预测集成工具(值得收藏)
Aug 21 #Python
简述 Python 的类和对象
Aug 21 #Python
DRF框架API版本管理实现方法解析
Aug 21 #Python
Django rest framework分页接口实现原理解析
Aug 21 #Python
Python -m参数原理及使用方法解析
Aug 21 #Python
You might like
PHP中一个控制字符串输出的函数
2006/10/09 PHP
PHP读取目录下所有文件的代码
2008/01/07 PHP
php模板函数 正则实现代码
2012/10/15 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python实现接口并发测试脚本
2019/06/25 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
外贸采购员求职的自我评价
2013/11/26 职场文书
高中自我评价分享
2013/12/05 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
人事任命书范文
2014/06/04 职场文书
项目安全员岗位职责
2015/02/15 职场文书
运输公司工作总结
2015/08/11 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
如何使用SQL Server语句创建表
2022/04/12 SQL Server
Oracle中DBLink的详细介绍
2022/04/29 Oracle