目录
钉钉健康打卡、钉钉自动打卡
一、主要功能的实现
- 登录账号
- 点击页面
- 填写体温
- 点击上报
- 执行完成后,发送邮箱通知
- 部署云服务器,后台自动执行
二、功能实现所使用的模块
win32api、win32con、pynput模拟控制鼠标键盘,不要问我为啥不用一个库(本来只用一个好好的,后来传到服务器里就不行了,只好两个模块都用了)
selenium驱动Edge浏览器,需要下载Edge的driver驱动
smtplib和MIMEText就是负责邮件的收发了,这里我用的是QQ邮箱,需要在自己邮箱内开启SMTP功能,还有QQ邮箱的SMTP服务器。
三、 具体实现内容
不要在意为啥有那么多的time.sleep(),这里不追求效率,考虑网速和服务器辣鸡等原因,多等会儿稳健一点。
1.登录并跳转到上报页面
主要通过selenium的find_element(By._)定位
driver = webdriver.Edge() #创建一个edge实例
driver.maximize_window() #最大化页面
driver.get("学校OA登录页面.html") #OA系统登陆页面
time.sleep(2)
#通过find_element(By._)定位输入框和登录的button按钮,并输入账号密码登录
driver.find_element(By.ID,"name").send_keys("123456") #输入账号
time.sleep(2)
driver.find_element(By.ID,"password").send_keys("123456") #输入密码
time.sleep(2)
driver.find_element(By.ID,"submit_login").click() #点击登录
time.sleep(3)
driver.find_element(By.LINK_TEXT,"服务中心").click() #点击服务中心
time.sleep(3)
driver.find_element(By.XPATH,"//*[@id='commonService']/ul/li[2]").click()#点击学生健康上报
time.sleep(3)
driver.switch_to.window(driver.window_handles[1])
time.sleep(2)
2.打开开发者工具并设置edge浏览器传感器
到这里就用到了pynput的鼠标和键盘控制了,写了一个move_mouse()后面直接调用就行(屎山代码&#