python2自动打卡脚本 📅 发布时间:2026/7/3 19:59:06 👁️ 浏览次数: 我司打卡比较奇葩既不是钉钉也不是刷卡也不是刷脸刷指纹而是记工作日志按你最后更新的时间算下班时间因为近期没啥活又不想加装很忙就写了个自动打卡脚本帮我更新日志自动打卡其实这时候我人已经在家了嘻嘻python2写的因为公司电脑没有 python3流汗# -*- coding: utf-8 -*- from __future__ import print_function import os import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from datetime import datetime,date import sys from threading import Thread,Timer reload(sys) sys.setdefaultencoding(utf-8) CHROMEDRIVER_PATH /Users/dev/Documents/chromedriver-mac-x64/chromedriver work_log u目前看 cpu 状态稳住了没有持续上涨但是还是过高需要升级 delay 5400 def auto_daka(): # 检查文件是否存在且有执行权限 if not os.path.exists(CHROMEDRIVER_PATH): raise Exception(ChromeDriver 文件不存在: CHROMEDRIVER_PATH) if not os.access(CHROMEDRIVER_PATH, os.X_OK): print(警告: ChromeDriver 可能没有执行权限尝试添加...) os.chmod(CHROMEDRIVER_PATH, 0755) chrome_options Options() # 无头模式 # chrome_options.add_argument(--headless) # 禁用沙箱有时能解决启动问题 chrome_options.add_argument(--no-sandbox) # 禁用 GPU 加速 chrome_options.add_argument(--disable-gpu) # 指定 Chrome 二进制文件位置如果系统有多个 Chrome chrome_options.binary_location /Applications/Google Chrome.app/Contents/MacOS/Google Chrome try: driver webdriver.Chrome( executable_pathCHROMEDRIVER_PATH, chrome_optionschrome_options ) print(启动成功) driver.get(http://team/pages/viewpage.action?pageId259228461) print(页面标题:, driver.title) time.sleep(2) id os_username password os_password # 查找用户名和密码输入框并填入信息 username_input driver.find_element_by_id(os_username) password_input driver.find_element_by_id(os_password) # 清空并填入用户名 username_input.clear() username_input.send_keys(xxx) # 清空并填入密码 password_input.clear() password_input.send_keys(xxx) print(已填入登录信息) # 查找登录按钮假设有 id 或 class login_button driver.find_element_by_id(loginButton) # 或 find_element_by_class_name(btn-login) login_button.click() print(已点击登录) td_mon str(datetime.now().month) td_d str(datetime.now().day) td str(date.today()) td_j td[:7].replace(-,) # 找到月份链接 month_text d322-张三- td[:7] link driver.find_element_by_link_text(month_text) link.click() print(已点击链接) print(td,td) # 找到具体日期 h5_id xxx张三 td_j - td_j[:4]年td_mon月 td_d日 edit_btn driver.find_element_by_xpath( //h5[id{}]//span[title编辑].format(h5_id) ) edit_btn.click() time.sleep(5) from selenium.webdriver.common.keys import Keys # # 先检查有哪些 iframe iframes driver.find_elements_by_tag_name(iframe) print(找到 %d 个 iframe % len(iframes)) for i, iframe in enumerate(iframes): print(Iframe : id, name},iframe.get_attribute(id)) # 如果没有 iframe就不需要切换 if len(iframes) 0: first_layer_iframe iframes[0] driver.switch_to.frame(iframes[0]) # 切换到第一个 iframe print(切换到第一个 iframe) iframes driver.find_elements_by_tag_name(iframe) if len(iframes) 0: driver.switch_to.frame(iframes[0]) print(切换到第二个 iframe) #wysiwygTextarea_ifr # 先切换到 iframe如果有的话 #driver.switch_to.frame(cipe-frame) # 或 iframe 的 id/name imgs driver.find_elements_by_tag_name(img) print(imgs:,len(imgs)) # 查找元素 img driver.find_element_by_css_selector(img[aria-label*晚上]) # 点击图片定位光标 img.click() time.sleep(0.5) # 按右箭头键将光标移到图片后面 img.send_keys(Keys.ARROW_RIGHT) # 输入内容 img.send_keys(work_log) # 保存 driver.switch_to.default_content() driver.switch_to.frame(first_layer_iframe) save_button driver.find_element_by_id(rte-button-publish) save_button.click() # 操作完后切回主文档 driver.switch_to.default_content() time.sleep(5) driver.quit() os.system(shutdown -h now) sht_dwn() except Exception as e: print(错误详情:, str(e)) def shutdown_now(): from pynput.mouse import Controller as MouseController, Button from pynput.keyboard import Controller as KeyboardController, Key import time mouse MouseController() keyboard KeyboardController() # 鼠标移动到 (100, 200) mouse.position (0, 0) time.sleep(1) # 点击左键 mouse.click(Button.left) print(已点击) def sht_dwn(): import subprocess print(正在关机...) subprocess.call([ osascript, -e, tell application System Events to shut down ]) if __name__ __main__: Timer(delay,auto_daka).start()
Go语法练习小项目 学生信息管理系统(简单练习Go基础语法) 1.简单概述 (1)基本功能 控制台项目,实现注册,登录,退出系统的菜单栏,实现用户界面的添加学生信息,查找学生信息,返回上级界面的功能.数据备份仅使用简单的文件操作 (2)项目定位 简单的自己规划的项目可以简单练习语法(不包括 反射 协程 … 2026/5/17 3:31:43
docker desktop启动报错:There was a problem with WSLAn error occurred while running a WSL command. Pleas 错误代码 0x800705aa 通常意味着 系统资源不足 或者 虚拟化环境初始化失败。这通常不是你的电脑硬件不行,而是 Windows 的虚拟化组件没完全对上焦。请按照以下步骤依次尝试,通常前两步就能解决问题:1. 最简单的尝试:重启 关掉占用… 2026/5/17 11:53:31
【Linux内核模块】使用模块绕开“GPL“ 一、先搞懂:GPL 到底对内核模块说了啥? 1.1 GPL 的核心要求:共享 alike GPL(GNU 通用公共许可证)的核心原则是「Copyleft」(著佐权):基于 GPL 作品衍生的作品,必须以… 2026/5/17 11:53:31
Wireshark实战指南:从网络协议分析到安全嗅探的核心技巧 1. 项目概述:从“看热闹”到“看门道”的网络分析之旅 如果你对网络世界充满好奇,想知道每次点击鼠标、每次刷新网页背后,数据究竟是如何在看不见的“高速公路”上飞驰的,那么Wireshark就是你梦寐以求的“透视镜”。它不是什么高深… 2026/7/4 13:31:18
机器学习博士生存指南:问题定义能力培养与结构化进阶路径 1. 这不是“读博指南”,而是一份机器学习方向博士生的生存手记 我带过7届硕士生、指导过4位博士生,自己也从MIT CSAIL实验室的博士后一路走来,在工业界和学术界之间来回切换了将近十二年。每次在NeurIPS或ICML茶歇时被年轻学生拉住问“老师&a… 2026/7/4 13:29:18
时序编码硬件原语:神经形态计算的高效实现 1. 时序编码硬件原语的设计哲学在神经形态计算领域,时序编码一直被视为突破传统冯诺依曼架构瓶颈的关键路径。与常见的速率编码不同,时序编码利用脉冲发放的精确时间差来传递信息,这种编码方式更接近生物神经系统的运作机制。我们团队在过去三… 2026/7/4 13:27:17
STM32L442KC与MIC1557硬件看门狗设计指南 1. 为什么选择MIC1557STM32L442KC组合? 在工业控制和物联网设备中,定时系统的可靠性直接关系到整个系统的稳定性。MIC1557作为一款经典的看门狗定时器芯片,与STM32L442KC这款超低功耗MCU的搭配,形成了一个既经济又可靠的硬件看门狗… 2026/7/4 13:27:17
基于CNN的智能口罩检测系统开发与优化实践 1. 项目背景与核心价值 在公共卫生事件频发的当下,公共场所的口罩佩戴检测已成为常态化防疫措施。传统人工巡检方式存在效率低下、成本高昂且易产生疏漏等问题。这个基于卷积神经网络的智能检测系统,正是为了解决这一痛点而生。 我在2020年参与某园区防… 2026/7/4 13:25:17
STM32与TPS65263的嵌入式电源管理方案解析 1. 项目背景与核心价值 在嵌入式系统开发中,电源管理一直是决定系统稳定性和能效表现的关键因素。传统方案往往采用多个独立DC-DC转换器或LDO稳压器来为不同模块供电,这不仅增加了PCB面积和BOM成本,还难以实现动态电压调节。TPS65263与STM32F… 2026/7/4 13:25:17
STM32F745VG与MC6470 IMU的高性能姿态控制系统设计 1. MC6470与STM32F745VG的黄金组合解析在工业自动化和机器人控制领域,传感器与微控制器的协同工作能力直接决定了系统的响应速度和定位精度。MC6470作为一款6自由度惯性测量单元(6DOF IMU),与STM32F745VG这款基于ARM Cortex-M7内核的高性能微控制器组合&… 2026/7/4 0:00:28
Playwright自动化测试实战:从零搭建现代Web测试框架 1. 项目概述:为什么是 Playwright?如果你正在为现代 Web 应用的自动化测试头疼,尤其是面对那些充斥着动态加载、复杂交互的单页应用(SPA),那么 Playwright 的出现,很可能就是你的解药。我接触过… 2026/7/4 0:00:28
终极指南:如何将JSXBIN二进制文件转换为可读JSX源代码 终极指南:如何将JSXBIN二进制文件转换为可读JSX源代码 【免费下载链接】jsxbin-to-jsx-converter JSXBin to JSX Converter written in C# 项目地址: https://gitcode.com/gh_mirrors/js/jsxbin-to-jsx-converter 你是否曾经面对过Adobe产品的JSXBIN文件感到… 2026/7/4 0:02:28