影刀使用的一些思考(一)

影刀使用的一些思考(一)

1. 影刀是什么

影刀是一款自动化脚本工具,可以模拟人类操作,完成一些重复性的任务,比如刷视频、刷文章、刷评论等。

2. 学习影刀的初衷

  • 想要学习自动化脚本,提高工作效率
  • 配合当前Jenkins自动化部署,形成一套有效的自动化部署方案
  • 一些每天必须做的重复任务交给他,自己有更多的时间去做其他的事情
  • 现实需求,用影刀去开发游戏辅助器,用在体验公司游戏后的时间投入,避免掉队
  • 未来想法,用影刀去刷一些想玩游戏的任务,把时间专注与游戏内容本身上,而不是在游戏里再上个班

3. 影刀与Jenkins的结合

3.1 认知误区

在学习过程中会有一种错觉,那就是影刀能替代Jenkins,Jenkins能做的影刀也能做。

这里必须把自己的想法掐死
确实能做,但能做并不代表做好。不要否定已经拥有的,不能去神话新了解的技术,如果有这种感觉那说明学的不到位,不了解核心优势。

3.2 影刀的优势

核心能力:

  • 可视化拖拽、零代码 / 低代码,快速搭建流程
  • 驱动浏览器、Windows 桌面、APP、ERP/CRM 等UI 交互
  • 跨系统数据搬运、表单填写、报表导出、重复操作机器人
  • 适合规则明确、重复、跨系统、带界面的业务流程

3.3 Jenkins的优势

核心能力:

  • 代码提交触发、编译、测试、打包、部署、版本管理
  • Pipeline-as-Code、插件生态、分布式构建、高并发调度
  • 适合代码工程、持续集成、环境部署、测试自动化调度

3.4 场景选择:什么时候用谁?

用影刀(绝对不能用 Jenkins)

  • 业务人员做跨系统数据录入 / 导出(Excel→网页→ERP)
  • 财务 / 客服重复表单、对账、报表
  • 电商订单处理、库存同步、评价回复
  • 需模拟人点击、输入、截图、识别验证码的流程
  • 非研发人员快速落地自动化,不想写代码

用 Jenkins(影刀完全做不了)

  • 代码提交后自动编译、打包、单元测试
  • 多环境(DEV/STG/UAT/PROD)持续部署
  • 大规模接口 / 性能测试调度、结果统计
  • 研发团队流水线管理、版本回滚、构建日志
  • 容器化(Docker/K8s)、云原生部署流程

3.5 影刀与Jenkins的结合

  • 暂未涉及到,仍在学习中

4. 影刀学习的一些思考

4.1 学习目标

  • 拿到影刀的高级证书
  • 熟练运用影刀,为工作减负

4.2 学习进度

  • 证书分:初、中、高三级
  • 当前在中级学习中
  • 学习使用过程中,有了一些不同的想法与尝试

4.3 学习建议

说明:中级以前别有想法,甚至中级理论知识过半之前别有那么多想法,走了很多弯路,浪费很多时间

初级只要老老实实跟着教学走就行,不用想着优化,也不用想着调整,等中级再考虑。

4.4 网页自动化问题

4.4.1 打开网页方式

问题:打开网页方式

原因:觉得打开新网页是一种浪费,想封装一个获取已打开网页的流程,从而引发的思考,并与AI进行了讨论

核心思想:想放弃打开新网页这个指令

  1. 使用获得已打开的网页,并在获得失败后再打开目标地址,网页地址通过传入参数确定
    • 无法确定具体网址,标题也不稳定,只有域名是不变的,使用通配获取
    • 如:*shop.yingdao.com*
  2. 判断获取到的网页的状态,如已经登录了的,是否要还原到初始状态,通过传入参数决定
  3. 流程结束,在主流程通过获取该网页操作
两种方式对比

方式一:打开新网页(推荐)

指令流程:启动浏览器 → 打开网页 → 执行操作 → 关闭网页

:更彻底一点,直接使用非常用的浏览器,可以最大限度的保护数据

优点

  • 环境干净,不受之前页面、登录状态、缓存干扰
  • 不会误操作到人工正在用的页面
  • 流程稳定、可重复运行,适合定时 / 批量任务
  • 关闭后不留痕迹,不容易越跑越卡

缺点

  • 每次都要重新加载、重新登录,稍微慢一点

适用场景

  • 日常自动化、定时任务、批量处理
  • 爬虫、数据采集、提交表单
  • 你希望流程稳定、可重复、不干扰人工

方式二:获取已打开网页

指令流程:找到当前已打开的浏览器页面 → 继续操作

优点

  • 不用重新登录、不用重新加载,速度快
  • 适合接着人工操作继续跑

缺点(非常多坑)

  • 页面可能被人工关掉、跳转、刷新 → 直接报错
  • 多开页面时容易匹配错网址
  • 登录过期、弹窗、广告都会导致流程不稳定
  • 跑完不关闭,浏览器越开越卡,内存泄漏

适用场景

  • 辅助人工操作:人工先打开页面 → 影刀接着干活
  • 临时、单次运行,不做长期定时任务
结合场景分析

以影刀商城登录页(shop.yingdao.com)为例:

  • 如果用获取已打开网页

    • 前提:必须人工先登录好
    • 一旦页面关了、超时掉线、跳页,脚本直接崩
    • 有不崩的方式,那就是处理大部分的错误,投入与产出完全失衡
  • 如果用打开新网页

    • 脚本可以自己:打开 → 登录 → 做业务 → 关闭
    • 稳定、可重复、可定时

结论:强烈建议使用打开新网页方式

4.4.2 移动像素问题

核心想法
能不能偷懒,就是只用简单的命令
打开网页->移动鼠标-> 点击 - >等待元素出现
重复操作,直到指定流程结束
核心思想就是点点点,时不时输入点文字,然后继续点点点,遇见丢失就加等待
虽然这种方法存在很大的问题(运行不稳定),但很适合当捷径走,主打一个有手就行

疑问:如此有了疑问,能不能在所有电脑上都有效
对移动像素产生了一些怀疑,如果是不同电脑的分辨率,移动像素是否会有误差?

结论
会出问题,而且是跨设备运行最常见的坑。

  • 能用元素定位就别用坐标
  • 必须用坐标就用相对 / 百分比坐标

适用范围
可以放心用的情况:

  • 只在自己这一台电脑跑
  • 不换显示器、不改分辨率、不改缩放
  • 只是自己用的小脚本、临时脚本

4.4.3 元素库问题

4.4.3.1 元素库的拆分规则

如果一个网站都使用一个元素库,那这个元素库会非常庞大,而且元素的命名也会成为一个问题,同一类按钮的命名很难写,并且在使用时也会造成困扰。

尝试用如:login_btn_autologin 这种方式命名 登录功能的自动登录按钮,但在实际使用时就不得不加更多的前缀,已确保唯一,然后前缀长的离谱。

所以决定拆分库,并使用如下规则:

  1. 按平台/系统拆分

    • 将不同业务系统的元素分开放置
    • 如 [OA系统]、[CRM系统]、[财务系统]
    • 不同系统,避免元素混淆,定位迅速
    • 命名清晰,互不干扰
  2. 按页面/功能模块拆分

    • 针对同一系统,按页面或功能创建文件夹
    • 如 [登录页]、[订单列表页]、[用户管理页]
    • 方便并行开发和后期维护

元素库命名规范:平台 + 系统模块(如果有) + 功能模块

例如:京东_OA系统_登录页

4.4.3.2 元素库的元素命名规范

命名原则:使用全英文,与现有的工作使用的命名规范一致,方便记忆

命名格式:前缀 + 名字

组件 前缀
按钮 btn_
输入框 input_
下拉框 select_
选择框 toggle_
文本域 txt_
图片 img_
链接 link_
表格 table_
表单 form_
菜单 menu_
工具栏 toolbar_
分页 page_
日期选择器 datePicker_
时间选择器 timePicker_
滑块 slider_
进度条 progress_
树形控件 tree_
地图 map_
图表 chart_
视频 video_
音频 audio_
富文本编辑器 rtxt_
弹窗 tips_

影刀使用的一些思考(一)
http://example.com/2026/03/31/影刀使用的一些思考壹/
作者
xian
发布于
2026年3月31日
许可协议