Python中如何用SL4A实现企业微信自动定时打卡?或者有更好的实现方式吗?
这里说的不用安卓的意思是不用安卓开发软件的意思,因为我不太会,我自己用的安卓。。。
Python中如何用SL4A实现企业微信自动定时打卡?或者有更好的实现方式吗?
设闹钟
用SL4A(Android上的Python)实现企业微信自动打卡理论上可行,但非常不推荐,因为它依赖特定设备、环境复杂且不稳定。更推荐使用以下两种主流方案:
方案一:PC端自动化(推荐)
使用uiautomation或pyautogui直接控制Windows/Mac上的企业微信客户端:
import uiautomation as auto
import time
def wechat_work_check_in():
# 1. 唤醒企业微信窗口
wx_window = auto.WindowControl(searchDepth=1, Name="企业微信")
if not wx_window.Exists():
print("未找到企业微信窗口")
return
# 2. 激活窗口并点击打卡按钮(需根据实际界面调整定位方式)
wx_window.SetActive()
time.sleep(1)
# 示例:通过控件树查找打卡按钮(需用Inspect工具先确认控件属性)
checkin_btn = wx_window.ButtonControl(Name="打卡")
if checkin_btn.Exists():
checkin_btn.Click()
time.sleep(0.5)
# 处理打卡确认弹窗等后续操作...
print("打卡成功")
else:
print("未找到打卡按钮")
# 结合定时任务(如schedule库)设置执行时间
if __name__ == "__main__":
wechat_work_check_in()
方案二:移动端自动化
通过Appium+adb控制手机(需开启USB调试):
from appium import webdriver
from selenium.webdriver.common.by import By
caps = {
"platformName": "Android",
"appPackage": "com.tencent.wework",
"appActivity": ".launch.LaunchSplashActivity"
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
# 使用XPath或ID定位打卡元素(需提前抓取页面元素)
driver.find_element(By.XPATH, "//*[@text='工作台']").click()
driver.find_element(By.XPATH, "//*[@text='打卡']").click()
driver.quit()
关键建议:
- 优先使用PC端方案,稳定性更高且易于调试
- 必须提前通过
Inspect.exe(Windows)或Appium Inspector抓取准确的控件属性 - 企业微信界面更新后需重新调整定位逻辑
替代方案提醒:如果公司提供API接口,直接调用官方API是最稳定合规的方式。
总结:直接放弃SL4A方案,用PC端自动化更靠谱。
appium 参考一下。
可是很渣的安卓却可以很容易完成这种操作。。
闹钟完美解决!
人工智能音箱设置提醒(手动滑稽
说一个 low 一点但是很好用的方法…按键精灵
搬到公司住。
有电脑版么?有只需要找个闲置电脑或者开个长期在线的虚拟机,放个按键精灵就行
不懂你好好的问题最后非得地图炮一句是什么操作,毫无关联
手机闹钟和电脑日历上都设一个提醒,全平台都给你弹提示,不信你会看不到,不要简单问题复杂化
这种见光死 公开了实现大家都没的玩
建议开除。XD
弄个脚本提示你去打卡,我觉得这个比较靠谱
我也是去公司打卡啊,只是每天我早到或下班都忘记打卡,没有一天迟到早退哦
我也经常忘记~~
设个闹钟,或者被罚钱几次就长记性了
安卓有 auto.js ios 就不懂了 jsbox 不知道适合不适合
如#14 楼说的,弄个脚本提醒你打卡,最好别用工具自动打卡,公司发现了,性质不太一样。
上面那些说自动打卡有问题的,是不是都没用过?
企业微信的打卡需要定位,在办公场地才能打,所以定时自动打卡并不是什么恶劣的行为。反而是题主,难道不知道企业微信自己就带了自动打卡的吗?在打开设置里就有。只是官方只带了上班自动打卡,没有下班自动打的功能。
抓包先看一下打卡需要提交的参数信息,如果是 cookie 或 token 去验证的可以先分析失效时间,然后分析一下生成机制,然后模拟提交即可。
苹果的提醒事项有个“到指定位置提醒”的功能,你可以试试能不能设置成工作日到公司就给你提醒打卡。我没试过不知道效果怎么样。
你果粉就果粉,还开一波群嘲安卓用户。。不怕被打吗
虚拟定位了解一下
#20
你说的自动是需要打开 app 的吧。
我感觉楼主是连 app 都记不得打开。。。
楼主的痛点不是上班忘记打卡吗,用虚拟定位就是完全不同的另一回事了。
并不需要打开 app,这个我们公司的人深有体会。因为我们有 2 处不同办公地点,相距仅几百米,但是打卡到另一处的话,人事那边是不认的。所以一开始有很多人因为上班路过,而导致打卡到另一处了。对应的解决办法是,在 IOS 设置里设置企业微信仅在运行时才能使用定位。
#29
为毛我不行,难道是因为我关掉了后台刷新?
关于虚拟定位、修改时间打卡啥的,来看看这个案例:
http://wenshu.court.gov.cn/content/content?DocID=9da7970f-406a-4576-b5bd-a7db010aa9de
不知道哦,反正 IOS 版默认就可以直接打卡的。只是这个功能对我们完全是副作用,不敢用。
#32
哈哈哈,算了,不纠结了。
Workflow 自己研究
提醒事项,到达指定地点触发提醒。
todo list 列为循环提醒事项


