Python中如何用SL4A实现企业微信自动定时打卡?或者有更好的实现方式吗?

这里说的不用安卓的意思是不用安卓开发软件的意思,因为我不太会,我自己用的安卓。。。
Python中如何用SL4A实现企业微信自动定时打卡?或者有更好的实现方式吗?

37 回复

用SL4A(Android上的Python)实现企业微信自动打卡理论上可行,但非常不推荐,因为它依赖特定设备、环境复杂且不稳定。更推荐使用以下两种主流方案:

方案一:PC端自动化(推荐) 使用uiautomationpyautogui直接控制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()

关键建议

  1. 优先使用PC端方案,稳定性更高且易于调试
  2. 必须提前通过Inspect.exe(Windows)或Appium Inspector抓取准确的控件属性
  3. 企业微信界面更新后需重新调整定位逻辑

替代方案提醒:如果公司提供API接口,直接调用官方API是最稳定合规的方式。

总结:直接放弃SL4A方案,用PC端自动化更靠谱。

被公司发现,立马开除。

appium 参考一下。

可是很渣的安卓却可以很容易完成这种操作。。

闹钟完美解决!

人工智能音箱设置提醒(手动滑稽

说一个 low 一点但是很好用的方法…按键精灵

搬到公司住。

有电脑版么?有只需要找个闲置电脑或者开个长期在线的虚拟机,放个按键精灵就行

不懂你好好的问题最后非得地图炮一句是什么操作,毫无关联

手机闹钟和电脑日历上都设一个提醒,全平台都给你弹提示,不信你会看不到,不要简单问题复杂化

这种见光死 公开了实现大家都没的玩

建议开除。XD

我的意思是我的安卓渣

弄个脚本提示你去打卡,我觉得这个比较靠谱

我也是去公司打卡啊,只是每天我早到或下班都忘记打卡,没有一天迟到早退哦

我也经常忘记~~

设个闹钟,或者被罚钱几次就长记性了

安卓有 auto.js ios 就不懂了 jsbox 不知道适合不适合

如#14 楼说的,弄个脚本提醒你打卡,最好别用工具自动打卡,公司发现了,性质不太一样。

上面那些说自动打卡有问题的,是不是都没用过?
企业微信的打卡需要定位,在办公场地才能打,所以定时自动打卡并不是什么恶劣的行为。反而是题主,难道不知道企业微信自己就带了自动打卡的吗?在打开设置里就有。只是官方只带了上班自动打卡,没有下班自动打的功能。

题目直接 aoe 了,这波币赚的

迟到扣钱就行了,阶乘扣钱

我就不信你还能忘记

抓包先看一下打卡需要提交的参数信息,如果是 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 列为循环提醒事项

回到顶部