forked from d6imde9/ZZUClock
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
56 lines (51 loc) · 2.29 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#coding:utf-8
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
import os
chromedriver = "/usr/bin/chromedriver" #浏览器驱动配置
os.environ["webdriver.chrome.driver"] = chromedriver
option = webdriver.ChromeOptions()
option.add_argument('--headless')
option.add_argument('--no-sandbox')
option.add_argument('--disable-gpu')
option.add_argument("blink-settings=imagesEnabled=false")
option.add_argument('--disable-dev-shm-usage')
option.add_argument('--ignore-certificate-errors')
option.add_argument("--disable-extensions")
pref = {"profile.default_content_setting_values.geolocation" :2}
option.add_experimental_option("prefs",pref)
driver = webdriver.Chrome(options=option, executable_path=chromedriver) #启动浏览器
account = os.environ.get('ACCOUNT').split(';') #字符串预处理
errors = 0
for acc in account:
usr = acc.split(',')
#进入登陆界面,输入学号和密码进行登录
driver.get('https://jksb.v.zzu.edu.cn/vls6sss/zzujksb.dll/first0')
driver.find_element(by=By.NAME, value='uid').send_keys(usr[0])
driver.find_element(by=By.NAME, value='upw').send_keys(usr[1])
driver.find_element(by=By.NAME, value='myform52').submit()
if driver.current_url == 'https://jksb.v.zzu.edu.cn/vls6sss/zzujksb.dll/login':
print('登录失败')
errors += 1
else: #进入信息确认界面,点击“本人填报”
frame = driver.find_element(by=By.NAME, value='zzj_top_6s')
driver.switch_to.frame(frame)
if driver.find_element(by=By.XPATH, value='//*[@id="bak_0"]/div[5]/span').text == "今日您已经填报过了":
print("已填报")
else: #进入打卡界面,点击“提交表格”
driver.find_element(by=By.XPATH, value='//*[@id="bak_0"]/div[11]/div[3]/div[4]').click()
driver.find_element(by=By.XPATH, value='//*[@id="btn416b"]').click()
sleep(5)
res = driver.find_element(by=By.XPATH, value='//*[@id="bak_0"]/div[2]/div[2]/div[2]/div[2]').text
if "同学,感谢你今日上报健康状况" not in res:
errors += 1
print(res)
driver.close()
try:
if errors > 0:
raise Exception("打卡失败")
except Exception:
print(errors)
else:
print("打卡完成")