点击一个按钮,影刀给了4种模式:模拟鼠标点击、禁止模拟、JavaScript点击、图像点击。选错了,要么点不动,要么被反爬。
四种模式一句话总结: 模拟鼠标点击最通用、禁止模拟最隐蔽、JavaScript点击最暴力、图像点击最无奈。
模式1:模拟鼠标点击(默认推荐)
工作原理:真实模拟鼠标移动到元素位置→按下→松开。和真人操作几乎一样。
适用场景:90%的情况都用这个。特别是登录按钮、提交表单、普通链接。
操作方法:
- 捕获元素后,点击模式下拉选择“模拟鼠标点击”
- 勾选“模拟移动”(鼠标滑过去的过程)
- 可选“随机偏移”几像素(更接近真人)
配置示例:
# 右侧指令面板设置
点击元素:

- 元素:捕获的“登录”按钮
- 点击模式:模拟鼠标点击
- 模拟移动:✅ 勾选
- 随机偏移:✅ 勾选,偏移范围3像素
- 点击次数:1

⚠️ 踩坑:部分网站会检测鼠标轨迹,模拟鼠标点击+模拟移动基本能过。但如果页面元素被遮挡(比如弹窗浮在上面),点击会失败。
模式2:禁止模拟(后台点击)
工作原理:直接给浏览器发送点击指令,不移动鼠标,屏幕上看不到光标移动。
适用场景:
- 影刀运行时你想继续用电脑干别的事(鼠标不乱跑)
- 点按钮时不想触发鼠标移入的hover效果
- 元素被其他窗口遮挡也不影响
操作方法: 选择“禁止模拟”即可,不需要额外参数。
对比示例:
# 模拟鼠标点击:鼠标会真的移动到“加入购物车”按钮上
# 缺点:运行期间你不能动鼠标,否则冲突
# 禁止模拟:后台发送点击信号,鼠标可以继续做别的事
点击模式:禁止模拟
✅ 优点:不占用鼠标,运行时可干别的事。 ❌ 缺点:部分网站前端只响应真实鼠标事件,会点不动。
实战建议:先用禁止模拟试,点不动再换模拟鼠标点击。
模式3:JavaScript点击(强行触发)
工作原理:直接在网页控制台执行element.click(),绕过所有事件监听和校验。
适用场景:
- 元素可见但怎么都点不动(如被透明层覆盖)
- 按钮被disabled但实际可交互
- 需要批量快速点击多个按钮(比模拟快)
操作方法:
- 点击模式选择“JavaScript点击”
- 无需其他设置,直接运行
代码本质(影刀后台执行):
// 影刀自动生成的JS代码
document.querySelector('你的元素选择器').click();
⚠️ 踩坑:
- 某些网站会检测JS模拟点击并拦截
- 触发的不是完整鼠标事件链(比如不会触发
mouseover),依赖hover事件的按钮可能无效 - 如果元素被遮挡或隐藏(
display:none),JS点击也会失败
什么时候用:模拟鼠标点击失败、禁止模拟也失败、元素可见但就是点不动——试试JS点击,它最暴力。
模式4:图像点击(万不得已)
工作原理:截图匹配图像位置,然后点击。不需要元素捕获,不看HTML结构。
适用场景:
- 元素无法正常捕获(如Canvas画布内的按钮、Flash)
- 元素被图片替代且没有特征class
- 有些手机应用在电脑上投屏操作时
操作步骤:
- 点击“图像点击”模式
- 点击“选择图像”,框选你要点的按钮区域
- 设置相似度(推荐0.8~0.9,太低了误点)
- 设置点击偏移(可选)
配置示例:
图像点击配置:
- 图像:选中的按钮截图
- 相似度:0.85
- 搜索范围:全屏(或指定区域)
- 点击模式:模拟鼠标点击
⚠️ 踩坑:
- 页面缩放或分辨率不同会导致找不到图
- 按钮颜色变化就失效
- 效率最低,每次都要做图像匹配
原则:最后的选择。能捕获元素就别用图像点击。
四种模式速查表
| 模式 | 影刀中名称 | 鼠标移动 | 抗遮挡 | 触发真实事件 | 推荐场景 |
|---|---|---|---|---|---|
| 模拟鼠标点击 | 模拟鼠标点击 | 是(可关) | 弱 | 完整 | 通用首选 |
| 禁止模拟 | 禁止模拟 | 否 | 强 | 完整 | 想同时用电脑 |
| JavaScript点击 | JavaScript点击 | 否 | 中 | 部分 | 普通模式点不动 |
| 图像点击 | 图像点击 | 可选 | 看图像 | 看点击模式 | 捕获不到元素 |
实战组合:弹窗关闭的点击策略
弹窗的“关闭”按钮经常被遮盖或动态加载,推荐三层降级:
第一层:模拟鼠标点击(带模拟移动)
如果失败 -> Catch异常
第二层:JavaScript点击
如果失败 ->
第三层:图像点击(预存关闭按钮截图)
影刀实现(Try-Catch嵌套):
Try:
点击元素("关闭按钮", 模式="模拟鼠标点击")
Catch:
Try:
点击元素("关闭按钮", 模式="JavaScript点击")
Catch:
图像点击(关闭按钮截图, 相似度=0.85)
常见问题速查
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 模拟鼠标点击没反应 | 元素被遮挡或不在可视区 | 前面加滚动到元素;换JS点击 |
| 禁止模拟点了但页面不跳转 | 网站检测了鼠标事件 | 换成模拟鼠标点击 |
| JS点击成功但后续逻辑异常 | 按钮触发的回调依赖hover | 换模拟鼠标点击 |
| 图像点击总是点偏 | 相似度太低或图像有背景变化 | 提高相似度到0.9;截图裁剪到最小 |
| 运行期间鼠标乱跑 | 用了模拟鼠标点击且未勾选“模拟移动” | 勾选“模拟移动”或换禁止模拟 |
我的调试习惯
不确定用哪种模式时,手动操作看一下:
- F12打开开发者工具,在Console输入
$0.click()($0是当前选中元素)。如果能触发,说明JS点击可用。 - 手动把鼠标移上去看按钮有没有样式变化。如果有hover效果,JS点击可能不行,必须用模拟鼠标点击。
- 运行时不希望打扰你工作,一律先用禁止模拟,失败再降级。
影刀官方推荐:默认用“模拟鼠标点击”,遇到问题再尝试其他模式。不要上来就用JS点击,容易被风控。
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
