打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用python开发钉钉自动打卡程序(python自动化)
userphoto

2022.12.06 北京

关注

一、前期准备

1、准备一部安卓手机

2、从网上下载adb的安装工具包,也可以到我的网盘下载

3、下载后解压到自己的本地目录,然后配置环境变量,如图所示

也可以自定义目录,但环境变量一定要配置(包括python)。

4、将自己的手机和电脑连接,打开开发者选项模式,使用usb进行连接,此时会自动安装ADB的驱动程序,安装成功后如下图所示

注意:此驱动如果安装失败,就无法进行后面的操作,一定要保证此驱动安装成功

如果一直无法安装此驱动,则可以参照如下步骤

1、首先从android官网网站下载对应的sdk-tool工具包,或者可以到我的网盘下载:密码:0jwd

2、下载完成后解压打开sdk manager

3、选择安装google usb driver插件

4、插件安装成功后开始安装,到我的电脑-管理-设备管理找到安装失败的adb驱动

5、右键点击更新驱动程序,后选择如下图所示

6、选择下一步

7、直接选择下一步后到如图所示,从本地磁盘找到安装驱动文件,然后点击下一步安装即可

8、安装成功如下所示

5、上述部署完成后打开cmd进入到驱动包目录下面检测是否成功连接设备

如图所示出现设备号则证明手机连接成功,并且驱动也安装无误。

 6、此时就可以输入相关命令进行坐标调试了,可以观察手机的动作,如图,可以为后面python脚本调试参数

二、开发阶段

1、首先准备python环境,具体安装部署就不详述了,这里之说下怎么部署需要的包,此次用到的包如下

2、这里着重说下uiautomator2包的导入,一般情况下都很容易安装失败

方式一:进入到本地python环境使用命令进行安装

注意:安装之前保证python环境变量配置和pip升级到最新版本

进入后首先执行python -m pip install --upgrade pip命令更新版本

如果此时更新失败,则可以到我的网盘直接下载安装包

下载完成后进入到安装包解压目录直接执行python setup.py install进行 安装即可

此时pip版本即可更新。

接下来就可以执行pip install --pre -U uiautomator2命令进行安装了

方式二:直接使用国内镜像网站直接更新下载pip install -U --pre uiautomator2 -i https://pypi.doubanio.com/simple

综合上述uiautomator2 的包就安装成功了

3、安装成功后就可以进行初始化了,继续进入到python安装目录,执行python -m uiautomator2 init,此时手机会提示时候安装响应的程序,直接点击允许即可

4、到此就可以放心的开发python代码了,整体代码如下

  1. import os,re
  2. import time
  3. import uiautomator2 as u2
  4. print('--------------------编写函数----------------------')
  5. ##根据x和y坐标进行屏幕定位点击事件
  6. def onClick(x,y):
  7. ##触摸屏幕进行点击
  8. os.system('adb shell input tap {x1} {y1}'.format(x1=x, y1=y))
  9. ##滑动屏幕从(x, y)坐标点到(ex, ey)坐标点
  10. def slide(x,y,ex,ey):
  11. os.system('adb shell input swipe {x1} {y1} {x2} {y2}'.format(x1=x, y1=y, x2=ex, y2=ey))
  12. ##手机屏幕响应操作
  13. def touch(key): #按动相应的按键
  14. if key == 'back':
  15. print('> 返回按键')
  16. os.system('adb shell input keyevent 4')
  17. elif key == 'light':
  18. print('> 开屏按键')
  19. os.system('adb shell input keyevent 26')
  20. time.sleep(1) # 等待1s等手机反应
  21. ##判断是否黑屏
  22. def is_black():
  23. d = u2.connect()
  24. screen = d.info
  25. if screen['screenOn'] == False:
  26. return True
  27. print('熄屏状态...')
  28. print('----------------------------------------------------------')
  29. print('---------------编写主函数,开始调用执行打卡---------------')
  30. def start():
  31. ##1、点击屏幕钉钉软件,坐标可根据手机自行调节
  32. onClick(650,850)
  33. time.sleep(2)
  34. ##2、点击钉钉里面的工作按钮
  35. onClick(550,2000)
  36. time.sleep(2)
  37. ##3、点击考勤打卡按钮
  38. onClick(150,1100)
  39. time.sleep(2)
  40. ##4、点击上班打卡按钮
  41. onClick(550,760)
  42. time.sleep(2)
  43. ##5、点击下班打卡按钮
  44. onClick(550,1082)
  45. ##打卡完毕,关闭屏幕
  46. time.sleep(2)
  47. ##打卡完毕,关闭屏幕
  48. touch('light')
  49. def startMain():
  50. if is_black():
  51. touch('light') ##点击亮屏幕
  52. ##由于我的是密码锁屏,姑且要输入密码
  53. ##如果将密码锁去掉则可以注释掉一下代码了,只需要亮屏即可
  54. #onClick(550,458)
  55. #onClick(650,785)
  56. #onClick(980,445)
  57. #onClick(990,998)
  58. start()
  59. else:
  60. start()
  61. startMain()

5、启动运行后结果如下,这里就只展示日志信息了

6、将python脚本部署到java的定时系统,就可以每天定时调用打卡了

 

总结:到此将其部署到定时器中就可以每天定时打卡了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?
如何用 Python 实现安卓机自动化?
终于有大佬把uiautomator2自动化测试框架讲得如此透彻了!
Python 自动化,Appium 凭什么使用 UiAutomator2?
uiautomator2+python自动化测试1-环境准备
30 行代码实现蚂蚁森林自动偷能量
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服