基于Selenium的疫情防控-自动打卡签到脚本

# -*- coding: utf-8 -*-
"""
# @Author: 狄克
# @Time  : 2020/4/9 17:54
# @File  : 疫情防控-自动打卡签到.py

最近在学自动化测试 感觉这个做自动打卡挺不错哎
工具说明:使用 Python + Selenium + ChromeDriver
需要将ChromeDriver加入环境变量
实现自动登陆疫情打卡页面并签到
"""
import time
from selenium import webdriver
from selenium.webdriver.support.select import Select
import yagmail
import datetime

# 只需修改下面三项即可 学号 密码 收件箱
userName = '2018******'
password = '******'
MainBox = '******@qq.com'

url = "http://****.****.edu.cn/jkdk"

NewTask_XPath = "/html/body/div[2]/table/tbody[2]/tr[2]/td[2]/a"
Address_XPath = "//*[@id='wjTA']/tbody/tr[6]/td[2]/div/select[2]"
Work_Xpath = "//*[@id='wjTA']/tbody/tr[6]/td[2]/div/select[3]"
Health_XPath = "//*[@id='wjTA']/tbody/tr[6]/td[2]/div/select[4]"
Life_XPath = "//*[@id='wjTA']/tbody/tr[6]/td[2]/div/select[5]"
Family_XPath = "//*[@id='wjTA']/tbody/tr[6]/td[2]/div/select[6]"
Submit_XPath = "/html/body/form/div[1]/table/tbody/tr/td[1]/input"
nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')


# 模拟登陆
def do_login(userName, password):
    # driver.maximize_window() 将窗口最大化
    # 找到登录框 输入账号密码
    driver.find_element_by_id('txtId').send_keys(userName)
    driver.find_element_by_id('txtMM').send_keys(password)
    # 模拟点击登录
    driver.find_element_by_id('IbtnEnter').click()
    time.sleep(2)


# 模拟打卡
def do_sign():
    # 打开最新打卡任务
    driver.find_element_by_xpath(NewTask_XPath).click()
    time.sleep(2)
    # 定位select框 进行选择
    s1 = Select(driver.find_element_by_xpath(Address_XPath))
    s2 = Select(driver.find_element_by_xpath(Work_Xpath))
    s3 = Select(driver.find_element_by_xpath(Health_XPath))
    s4 = Select(driver.find_element_by_xpath(Life_XPath))
    s5 = Select(driver.find_element_by_xpath(Family_XPath))
    s1.select_by_index(1)
    s2.select_by_index(4)
    s3.select_by_index(1)
    s4.select_by_index(1)
    s5.select_by_index(1)
    time.sleep(2)
    # 提交打卡
    driver.find_element_by_xpath(Submit_XPath).click()


# 发送提示邮件
def sendMail(content):
    yag = yagmail.SMTP("[email protected]", "GVVEZOBIJCRVNQWO", 'smtp.126.com')
    yag.send(MainBox, "打卡提醒", content)


if __name__ == '__main__':
    # 模拟浏览器打开网站
    driver = webdriver.Chrome()
    driver.get(url)
    # 登录并打卡
    do_login(userName, password)
    do_sign()
    sendMail(nowTime + "\n打卡成功!")
    print("打卡结束")
    time.sleep(5)
    driver.quit()
发布了1 篇原创文章 · 获赞 3 · 访问量 2222

猜你喜欢

转载自blog.csdn.net/weixin_45675072/article/details/105417573