南京某职业技术学院自动打卡(解放双手)

Posted 家眷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了南京某职业技术学院自动打卡(解放双手)相关的知识,希望对你有一定的参考价值。

这个是好久之前的写的 纯粹是因为懒 所以今天才发给大家!!!

在学校里面也不出去,每天都要完成重复的信息填报,于是决定自己动手写一个来解放自己!

下面是学校官网的链接,点进去分析一下

https://i.njcit.cn/EIP/user/index.htm

按照惯例F12,研究了一番,发现还不如用webdriver

有了思路,直接开始写登陆

使用xpath定位需要的使用的元素,然后直接开撸 

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome
url = 'https://i.njcit.cn/EIP/user/index.htm'
driver.get(url=url)
sleep(4)
driver.find_element_by_xpath('//*[@id="userName"]').send_keys(输入你的账号)
driver.find_element_by_xpath('//*[@id="password"]').send_keys(输入你的密码)
driver.find_element_by_xpath('//*[@id="root"]/span/div[4]/div[2]/div[1]/div[1]/div/div/form/div[4]/button[1]').click()  # 点击登陆
sleep(4)
# 没事就暂停一下 让系统加载出来方便寻找需要的元素

当我们登陆进来了。下一步应该怎么做?

https://i.njcit.cn/EIP/cooperative/openCooperative.htm?flowId=5e407b9770f7847701712e33bc8c6b49

 这个链接就是我们要用到的打卡链接,所以需要加一个段,让我们登陆之后进入这个界面

urls = 'https://i.njcit.cn/EIP/cooperative/openCooperative.htm?flowId=5e407b9770f7847701712e33bc8c6b49'
driver.get(url=urls)
sleep(4)
#如果我们打过卡了应该怎么办?我们就在下面加一个判断,来告诉我们有没有打过卡!
web_html_str = driver.page_source
    result_list = re.findall("每天只能打卡一次哦", web_html_str)
    number = len(result_list)

    if number != 3:
        return None
    else:
        return '你还没有打卡!'

好了,有同学要说了,我没打卡,登陆进去了,然后咋办?

 

 当然昂,正常打开打卡页面,宿舍号,辅导员这些都是有滴

    #现居何地
    driver.find_element_by_xpath('//*[@id="HT42D71B$text"]').send_keys(输入自己现在的居住地)
    # 风险地区
    element = driver.find_element_by_xpath('//*[@id="mini-33$ck$1"]')
    driver.execute_script("arguments[0].click();", element)

上面我放着两个案例,不是小傻子的同学应该都可以看懂这里面的道理!

定位到他们的元素,如果是需要填写的就  .send_keys()

如果是按钮需要点击就写 .click()

眼看着就要完工了是吧,又有问题了!

有同学就要问了,下拉框怎么解决啊?

怎么解决?我也不会啊!

    
# 注意每一个下拉框的元素是不一样的,需要同学们自己去定位一下哦
# 选择健康
driver.execute_script("OO11(this,'mini-buttonedit-button-hover');")  # 运行下拉框的js事件
driver.execute_script("l0o1o(this,'mini-buttonedit-button-hover');")  # 运行下拉框的js事件
driver.find_element_by_xpath('//*[@id="DRSTZK"]/span/span/span[2]/span').click()  # 点击下拉框
driver.find_element_by_xpath('//*[@id="mini-15$0"]/td[2]').click()  # 进行选择

剩下的就是定位提交按钮,点击提交就好啦!

是不是非常的简单?

这时候肯定有同学又要问了:我给自己一个人打卡,这样的话还不够麻烦的呢!

问到精髓所在了!我也有办法啊!!

我们直接吧需要打卡的同学数据存储在表格里面不就行了?

等下我会分享给大家供大家享用 

这时候,如果还有同学提问,我就是想不起来打卡,才写的自动打卡,你这样弄不还是需要我自己手动?

不要着急嘛,打包好的程序下载链接我就放在下面,需要的你们自取,然后放到服务器定时运行就行了,一定要记得安装谷歌浏览器和对应的谷歌驱动哦!

如果说不知道放到服务器有没有正常打卡,也很简单!推送不就行了? 

个人建议使用qmsg的推送机器人,方便使用,只需要调用接口就行了,如果懒得申请的可以私信我,我给你机器人使用 

qmsg官网

因为高中语文写的不是很好,说的可能有的地方不是很清楚,希望大家可以谅解 

第二就是之所以使用webdriver,是因为登陆有加密,如果有大佬帮我改进更好

当然我写这个是懒,大家拿去用不要用于商业用途

而且我也希望大家可以认真对待信息填报,疫情防控,人人有责

如果有问题的小伙伴可以评论,或者私信我,我会给大家解决的

最最最后一点,希望大家可以给我一个关注 谢谢了!

密码:pdx 

以上是关于南京某职业技术学院自动打卡(解放双手)的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis Generator 代码自动生成器,从此解放你的双手

10个 IDEA 插件解放双手,这些代码都自动生成

撸了几行骚代码,解放了双手

自动化工具:PyAutoGUI的鼠标与键盘控制,解放双手的利器

写一个umi插件 自动生成代码 解放cv的双手

201903 主持召开思政课教室座谈会