一、起因
由于疫情的影响,学校要求每天早上填报学生个人状况,然而自从疫情爆发开始,干啥啥不行怕死第一名的我就一直宅在家中,每天都要填报一样的信息,还总是忘记,老被导员在群里提醒,怪不好意思的,当时就想着这么机械重复的任务交给计算机多好,于是就有了下面简单的程序
二、代码
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
username = '*****'#学号
password = '*****'#办公网密码
url = 'https://wechatapi.tju.edu.cn/app/disease_student/show'#填报网页
#url2是打开填报网页后弹出的登录界面
url2 = 'https://sso.tju.edu.cn/cas/login?service=https%3A%2F%2Finc-app.tju.edu.cn%2Fa_tju%2Fapi%2Fsso%2Findex%3Fredirect%3Dhttps%253A%252F%252Finc-app.tju.edu.cn%252Fuc%252Fapi%252Foauth%252Findex%253Fredirect%253Dhttps%25253A%25252F%25252Fwechatapi.tju.edu.cn%25252Fapp%25252Fdisease_student%25252Fauth%2526appid%253D200191108161421573%2526state%253D123%26from%3Dwap'
driver = webdriver.Chrome(executable_path='C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get(url2)
driver.implicitly_wait(10) # seconds
#登录
driver.find_element_by_id('username').clear()
driver.find_element_by_id('username').send_keys(username)
driver.find_element_by_id('password').clear()
driver.find_element_by_id('password').send_keys(password)
driver.find_element_by_name('submit').click()
#填报
driver.get(url)
driver.find_element_by_tag_name('button').click()
WebDriverWait(driver,10).until(EC.alert_is_present())
driver.switch_to_alert().accept()#关掉填报成功后的弹窗,强迫症
driver.quit()
三、实现
上面的代码只是实现了自动填写,每次需要自己点运行也太low了,还不如点开网址去填报呢,这时就要通过创建Windows定时任务来执行python脚本,脚本不需要封装即可,我为了看着简洁直接把脚本封装成exe文件,然后再添加到Windows定时任务中,还可以设置唤醒计算机运行任务,最后就是这样
从此以后就再也没被导员@了,嘿嘿