尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

影刀RPA新手教程:鼠标自动点击完全指南——坐标点击和元素点击的区别与选择

影刀RPA新手教程:鼠标自动点击完全指南——坐标点击和元素点击的区别与选择
📅 发布时间:2026/7/3 22:38:49

影刀RPA新手教程:鼠标自动点击完全指南——坐标点击和元素点击的区别与选择

很多刚接触影刀RPA的朋友,第一次打开软件时都会有同一个困惑。

“这东西到底能帮我干什么?除了打开浏览器点点按钮,还能操作别的吗?”

答案是:能,而且比你想象的得多。

今天这篇,咱们就从最最基础的"让影刀帮你自动点击鼠标"说起。

全程用一个真实案例串起来:用鼠标自动点击本地ERP软件里的一排按钮。

读完这篇,你会清楚地知道什么时候用坐标点击,什么时候用元素点击,不会再踩我当初踩过的那些坑。


先搞定影刀的安装——别在第一步就卡住

去影刀官网下载安装包,一路下一步就行,没啥好说的。

但有个地方要注意:安装完以后,一定要装浏览器插件。

我用Chrome,装完插件在浏览器右上角能看到一个小机器人图标,那就说明装对了。

没装插件的话,后面所有网页自动化的指令都用不了,我第一次就是这里没弄明白,对着空白的指令列表发呆了半天。

桌面应用自动化不需要浏览器插件,但建议还是装上,后面总要用的。

安装完成后打开影刀,界面长这样:左边是指令面板,中间是流程编辑区,右边是元素库。

第一次看可能会觉得东西好多,不用慌,咱们今天只用其中很小一部分。

home.linyan.cloud 这个地址我平时用来查影刀的各指令用法,遇到不懂的指令去翻一翻,比在软件里一个个试效率高得多。


案例背景:为什么要让影刀自动点按钮

先说说今天这个案例的场景,这样你读的时候知道咱们在干什么。

假设你们公司用一套本地部署的ERP系统,每天上班第一件事就是打开它,点一排按钮:入库查询、出库登记、库存盘点、报表导出……

一共8个按钮,每个都要点进去操作一遍,纯手工每天至少要花20分钟。

这活没啥技术含量,但每天都得做,烦得要命。

影刀可以帮你把这一整套点击操作全部自动化,你只需要坐在那看它自己跑就行。

但问题来了:让影刀点按钮,有两种完全不同的方式。

一种叫"元素点击",一种叫"坐标点击"。

这两种方式到底有啥区别?什么时候用哪个?这就是今天这篇的核心内容。


元素点击:让影刀"看见"那个按钮

元素点击是影刀最常用的点击方式,原理是:影刀先"看"一下界面上的按钮(这过程叫"捕获元素"),记住这个按钮的特征,然后下次运行时精准地点它。

用元素点击的第一步是"捕获元素"。

在影刀里点"捕获元素"按钮,鼠标会变成一个十字准星,把准星移到你想点的按钮上,点一下左键,影刀就会把这个按钮的信息记录下来,存到元素库里。

捕获完以后,在流程里拖一个"点击元素"指令,选择刚才捕获的那个按钮,搞定。

我第一次捕获元素的时候,怎么点都捕获不到,后来才发现:目标窗口必须处于可见状态,如果按钮被别的窗口挡住了,影刀是看不到它的。

这是新手最容易踩的第一个坑。

元素点击最大的好处是:只要按钮还在那个位置(界面没改版),不管窗口移到屏幕哪里,不管窗口大小怎么变,影刀都能准确点中。

因为它找的是按钮这个"对象"本身,不是屏幕上某个固定的坐标点。


坐标点击:告诉影刀"屏幕的哪个位置点一下"

坐标点击就粗暴多了,原理是:你告诉影刀"在屏幕坐标(x=500, y=300)这个位置点一下",影刀就乖乖地在那个位置点一下,不管那里是什么东西。

设置坐标点击的时候,影刀会让你填两个数字:X坐标和Y坐标。

X是从屏幕左边往右数的像素数,Y是从屏幕上边往下数的像素数。

左上角是(0, 0),往右X变大,往下Y变大。

那这两个数字怎么知道呢?

影刀提供了一个"抓取坐标"的功能,点一下,然后在屏幕上想要的位置点一下左键,坐标就自动填好了。

坐标点击有个大问题:它是写死的。

如果你今天录的时候窗口在屏幕左边,明天运行时窗口被你不小心拖到了右边,坐标点击就会点空——因为屏幕那个位置已经没有按钮了。

我当初做一个自动化流程,在自己电脑上跑得好好的,发给同事用,怎么都点不准,排查了一下午才发现是他的电脑屏幕分辨率跟我不一样,导致同样的坐标点到了不同的位置。


元素点击 vs 坐标点击:到底选哪个

这张对比表我建议你收藏,后面做流程的时候经常要翻回来参考。

元素点击的优点:

  • 窗口位置变了也能点准
  • 窗口大小变了也能点准
  • 屏幕分辨率不同也能点准
  • 是最"智能"的方式

元素点击的缺点:

  • 有些软件的元素捕获不到(特别是老旧的桌面软件)
  • 捕获元素的时候目标窗口必须可见
  • 如果软件改版了按钮属性变了,要重新捕获

坐标点击的优点:

店群矩阵自动化突破运营极限!

  • 任何地方都能点,哪怕是捕获不到元素的软件
  • 逻辑简单,不需要理解"元素"这个概念
  • 录制速度快

坐标点击的缺点:

  • 窗口位置不能变,一变就点不准
  • 屏幕分辨率必须跟录制时完全一致
  • 别人用你的流程,大概率跑不通

我的建议是:能捕获到元素的,一律用元素点击。捕获不到的,才考虑坐标点击。

今天这个ERP案例里,我会先尝试用元素点击,如果遇到捕获不到的按钮,再用坐标点击作为备选方案。


指令详解:点击元素指令的各个参数

拖一个"点击元素"指令到流程里,你会看到一堆参数,新手一看就懵。

咱们一个个说,都是大白话。

“目标元素”:就是你要点哪个按钮,从元素库里选。这没啥好说的,捕获了就能选到。

“点击类型”:有单击、双击、右键单击三种。大多数情况用单击就够了,需要打开文件或文件夹的时候用双击,需要弹出右键菜单的时候用右键单击。

“鼠标按键”:通常是左键,有些特殊软件可能要用右键或中键。

“执行前等待”:点这个按钮之前,等几秒钟。为什么要等?因为有些按钮要等界面加载完才能点,不等待的话可能点到一个还没加载出来的位置,就报错了。

“超时时间”:等多久还没找到这个按钮就放弃,报一个"找不到元素"的错误。默认是20秒,一般不用改。

“失败后继续”:如果找不到这个按钮,是直接报错停止,还是跳过去继续执行后面的指令。初学者建议先不勾选,报错了你才知道哪里出问题了。

我第一次用的时候,所有参数都用的默认值,结果因为ERP系统加载慢,按钮还没出来影刀就已经去点了,当然点不到。

后来我在每个点击指令前面都加了一个"等待元素出现"指令,问题就解决了。


用XPath和CSS定位那些"捕捉不到"的按钮

有些按钮,用影刀的捕获元素功能死活捕获不到,捕获出来是整个窗口,或者是一大片区域,就是精确定位不到那个按钮。

这时候就要用到XPath或者CSS选择器了,这是网页自动化里的高级技巧,但咱们今天先用大白话讲清楚。

XPath可以理解成"元素的地址"。

比如一个按钮在网页上的位置是:<html>里面有个<body>,<body>里面有个<div>,<div>里面有个<button>,那这个按钮的XPath就是把这个路径写下来:/html/body/div/button。

当然实际写起来不是这么写的,实际的XPath长这样://button[@id="submit-btn"],意思是"找所有button标签里,id属性等于submit-btn的那个"。

CSS选择器是另一种写法,更简洁一些。同样的按钮,用CSS写就是:button#submit-btn。

在影刀里,捕获元素以后,在元素库的"编辑元素"界面,可以手动改XPath或者CSS选择器,让定位更精准。

我当初遇到一个下拉菜单,怎么捕获都只能捕获到整个菜单区域,捕获不到里面具体的选项。

后来在元素编辑里手动改了XPath,用//li[contains(text(),'选项A')]这样的写法(意思是"找所有li标签里,文字包含’选项A’的那个"),一下子就精准定位到了。


变量出场:让点击的内容"动"起来

如果今天要点的按钮名字是固定的,那前面说的就够用了。

但真实场景里,经常遇到这种情况:今天要点击"入库查询",明天要点击"出库登记",按钮名字是变化的。

这时候就要用到"变量"了。

变量可以理解成一个"装东西的盒子",盒子的名字你定,盒子里装的东西可以变。

比如我定义一个变量叫按钮名称,今天里面装的是"入库查询",明天里面装的是"出库登记"。

然后在点击元素指令里,不直接写"点击’入库查询’按钮",而是写"点击按钮名称这个变量对应的按钮"。

这样只要改一下变量的值,整个流程就能点不同的按钮,不用重新录制。

变量的类型有几种:

  • 字符串(就是一段文字)
  • 数字(整数或小数)
  • 列表(一排东西,像Excel里的一列)
  • 字典(像通讯录,一个名字对应一个电话号码)
  • 布尔值(只有"是"和"否"两种值)

今天的案例里,咱们主要用"字符串"类型的变量,用来存按钮的名称。

定义变量用"设置变量"指令,给变量赋值用"给变量赋值"指令。

我第一次用变量的时候,把变量名写成了中文"按钮名称",后来发现在某些指令里中文变量名会出问题,建议还是用英文或拼音,比如btn_name。


For循环:让影刀把一排按钮全部点一遍

今天的案例里,ERP系统里有8个按钮,要挨个点一遍。

如果不用循环,就要拖8个"点击元素"指令,每个指令点一个按钮,流程会很长很冗余。

用For循环的话,只需要写一次"点击按钮"的逻辑,然后让影刀重复执行8次,每次点列表里的下一个按钮。

For循环有几种类型:

  • For次数循环:指定循环几次,比如循环8次
  • ForEach列表循环:把一个列表里的东西挨个取出来处理
  • While条件循环:只要某个条件成立就一直循环
  • 无限循环:一直跑,直到里面遇到"退出循环"指令

今天的场景最适合用ForEach列表循环。

具体操作是:先把8个按钮的名称存在一个列表变量里,比如按钮列表 = ["入库查询", "出库登记", "库存盘点", "报表导出", ...],然后用ForEach循环,每次从列表里取一个按钮名称,去点对应的按钮。

循环里要用到一个很重要的概念:“循环项”。

每一次循环,影刀会自动把列表里的下一个值赋给"循环项"变量,你在循环体里引用循环项就能拿到当前这次循环要处理的按钮名称。

我第一次写循环的时候,在循环体里直接写了按钮的名称(写死了),结果8次循环每次都点同一个按钮,排查了半天才发现这个问题。


If判断:有些按钮不是每次都要点

真实场景里还有这种情况:8个按钮里,有些只有在特定条件下才需要点。

比如"报表导出"按钮,只有今天是每月最后一天的时候才需要点,平时不用点。

这时候就要用到If条件判断指令了。

If指令的逻辑是:先判断一个条件是否成立,成立了就执行If里面的指令,不成立就跳过。

条件可以是各种判断:

  • 比较两个数字的大小
  • 判断一段文字里是否包含某个关键词
  • 判断一个文件是否存在
  • 判断今天是不是每月最后一天
  • ……

今天的案例里,咱们可以这样写:先获取今天的日期,判断是不是每月最后一天,如果是,才执行点击"报表导出"按钮的指令。

If指令还可以配合Else使用:如果条件成立做A,不成立做B。

还可以嵌套:If里面再套一个If,处理更复杂的判断逻辑。

我当初做一个流程,要判断Excel里某一行的某个单元格是否为空,为空就跳过,不为空就处理。结果写条件的时候写成了单元格 == None(这是Python的写法),影刀里应该用为空判断指令,两者语法不一样,报错报得我一头雾水。


Try-Catch:让流程报错也不至于全崩

自动化流程跑起来以后,最怕的就是中途报错,整个流程停在那里,后面的步骤都执行不了。

比如今天点第3个按钮的时候,刚好网络卡了一下,按钮没加载出来,影刀找不到元素就报错了,后面的5个按钮就没机会点了。

Try-Catch指令就是用来解决这个问题的。

Try块里放可能会报错的指令,如果Try块里报错了,流程不会停止,而是跳到Catch块里执行预先定义好的"出错以后的处理方案"。

处理方案可以是:

  • 打个日志,记录一下哪里出错了
  • 等几秒以后重试一次
  • 给管理员发个通知
  • 跳过这个错误,继续跑后面的步骤

今天的案例里,咱们可以把每个按钮的点击指令都放在一个Try块里,如果某个按钮点失败了,记录错误以后继续点下一个,不至于一个按钮卡住全盘皆输。

我建议所有重要的自动化流程都加上Try-Catch,这是让流程"稳定运行"最关键的一个习惯。

没有Try-Catch的流程,我称之为"玻璃流程"——看起来漂亮,一碰就碎。


鼠标键盘图像自动化指令族

影刀里跟鼠标相关的指令,除了"点击元素",还有一大堆,今天一并介绍一下,后面遇到类似场景直接用。

移动鼠标:把鼠标光标移到指定位置,不点击。有时候你需要先把鼠标移到某个位置,再进行后续操作,就用这个。

双击:快速点两下左键。打开文件、打开文件夹、编辑单元格,都用得上。

右键单击:点一下右键,弹出右键菜单。有些操作必须通过右键菜单才能完成。

鼠标拖拽:按住左键不松,把鼠标移到另一个位置再松手。拖动文件、拖动界面元素,用的就是这招。这个我们后面有专门的一篇来讲。

滚动鼠标滚轮:让界面往上滚或往下滚。网页懒加载、下拉刷新,都要用到这个。

键盘输入:模拟人在键盘上打字。这个我们下一篇会详细讲。

按下快捷键:模拟按下Ctrl+C、Ctrl+V、Alt+Tab这样的组合键。这个也是下一篇的重点。

截屏:把当前屏幕(或某个窗口)截图保存成图片文件。今天的案例里,点完每个按钮以后可以截一张图作为执行记录,后面出问题了有据可查。


用Python扩展影刀的能力

影刀自带的指令已经很丰富了,但有些特别复杂的需求,用指令拼起来会很麻烦,这时候可以用Python代码来搞定。

影刀支持在流程里嵌入Python代码,用"执行Python代码"指令就行。

比如今天的案例里,要判断今天是不是每月最后一天,用影刀指令来拼的话要用到日期函数、条件判断、变量赋值,要拖好几个指令。

用Python的话,三行代码就搞定了:

importcalendarfromdatetimeimportdatetime today=datetime.now()is_last_day=(today.day==calendar.monthrange(today.year,today.month)[1])

然后在影刀里用If指令判断is_last_day这个变量是True还是False,决定要不要点"报表导出"按钮。

Python还能做很多影刀指令做不了的事情:

  • 调用第三方的API接口
  • 处理复杂的Excel公式
  • 发送HTTP请求
  • 操作数据库
  • 做图像识别(OCR)
  • ……

我第一次在影刀里用Python的时候,在代码里用了print()想打印点调试信息,结果发现影刀里的Python代码的print输出是看不到的,要用影刀提供的xbot.print()才能把信息输出到影刀的日志里。

这是个小坑,记一下。


电商场景实战:点击商品列表里的"编辑"按钮

前面讲的都是ERP系统的案例,影刀用得最多的场景其实是电商。

比如你在淘宝或拼多多有个店,每天要挨个点击商品列表里的"编辑"按钮,修改库存数量或价格。

商品可能有几十个上百个,纯手工点要累死。

用影刀来做的话,核心逻辑跟今天的ERP案例一模一样:先捕获"编辑"按钮这个元素,然后用相似元素循环,把每一行的"编辑"按钮都点一遍。

“相似元素"是影刀里一个非常重要的概念:页面上有很多个长得差不多的按钮(比如每一行都有一个"编辑"按钮),它们属于"相似元素”,可以用一个循环全部抓到。

捕获相似元素的时候,先捕获第一个,然后在捕获界面里点"捕获相似元素",影刀会自动帮你把剩下的都捕获到。

我第一次捕获相似元素的时候,捕获完第一个以后不知道下一步该点哪里,在界面上乱点了一通,结果捕获出来的是一串乱七八糟的元素。

后来才知道:捕获完第一个以后,直接在界面上点第二个相似的元素,影刀就能自动识别出规律,把剩下的都找出来。


temu店群自动化报活动案例

飞书通知:让影刀跑完以后自动通知你

流程设置好以后,你肯定不想坐在电脑前盯着它跑。

影刀可以在流程跑完(或者跑出问题)的时候,自动发一条飞书消息通知你。

配置飞书通知的步骤是:

  1. 在飞书开放平台创建一个应用(或者用现有的)
  2. 拿到应用的App ID和App Secret
  3. 在影刀的"系统联动"里配置飞书连接
  4. 在流程里用"发送飞书消息"指令

今天的案例里,咱们可以在流程最后加一个飞书通知:“ERP按钮自动点击任务已完成,共点击8个按钮,0个失败。”

如果流程里用了Try-Catch,还可以在Catch块里发通知:“ERP按钮点击失败,失败按钮:XXX,请人工检查。”

飞书通知配置好以后,不止能发文字消息,还能发卡片消息、发文件、发图片。

我平时把影刀流程配成每天早上8点自动运行,运行结果直接发到飞书群里,团队成员都能看到,不用每个人都去检查。


调试技巧:流程不工作了怎么排查

流程写好了,点"运行",结果没反应,或者点到一半报错了,怎么办?

影刀提供了几种调试工具,学会用它们,排查问题效率高10倍。

第一步:看运行日志。

流程运行的时候,下方会实时显示每条指令的执行情况,哪条指令报错了、报错信息是什么,都写在里面。

大多数问题看报错信息就能定位到。

第二步:打断点单步调试。

在某条指令前面点一下,出现一个红点,这就是"断点"。

流程运行到断点这里会暂停,你可以查看当前所有变量的值,确认数据对不对,再点"继续"让流程继续跑。

第三步:用"打印日志"指令。

在关键位置加一条"打印日志"指令,把变量的值输出到日志里,运行时就能看到数据是怎么变化的。

我排查问题最常用的套路是:在报错指令的前面加一个打印日志,把相关的变量都打印出来,看看是哪一步数据出了问题。

今天的案例里,如果某个按钮点不到,我会在点击指令前面打印一下"当前要点的按钮名称是:XXX",确认一下变量的值对不对。


命名规范和版本管理:写得爽,后面更要维护得爽

流程写完了能跑,只是第一步。

后面要改需求、要给别人用、要在多台电脑上部署,如果流程写得乱七八糟,改起来会非常痛苦。

几个我踩过坑总结出来的规范:

指令命名要有意义。

不要叫"点击元素1"、“点击元素2”,要叫"点击ERP入库查询按钮"、“点击ERP出库登记按钮”,一看就知道是干什么的。

子流程该拆就拆。

如果主流程超过30条指令,考虑把其中一段逻辑拆成一个子流程。

今天的案例里,"点击某个按钮并等待加载完成"这个逻辑要重复8次,完全可以封装成一个子流程,主流程里调用8次就行,改起来也只需要改子流程一处。

版本号要记录。

影刀有版本管理功能,每次发一个稳定版本以后,记得写清楚这次改了什么。

我之前改了一个流程没记录版本,后来发现新版本有问题想回退,完全想不起来旧版本是什么逻辑了。


常见报错速查表

最后列一下今天这篇涉及的最常见的几个报错,以及解决办法。

报错1:找不到元素(Element not found)

原因:按钮还没加载出来,或者按钮的属性变了,或者窗口被挡住了。

解决:在点击指令前面加"等待元素出现"指令;检查目标窗口是否可见;如果是网页,检查网页是否跳转了。

报错2:数组转换为字符串失败(Can not convert Array to String)

原因:把整个列表直接填进了只能填单个文本的输入框里。

解决:如果是循环里,用循环项而不是整个列表变量;如果是列表里取某个值,用列表[下标]的写法。

报错3:元素属性变化导致捕获失效

原因:软件改版了,按钮的id或class属性变了。

解决:重新捕获元素;或者改用XPath/CSS里不太容易变化的属性来定位。

报错4:坐标点击在别人电脑上跑不准

原因:屏幕分辨率不同。

解决:改用元素点击;如果必须用坐标点击,在流程开头加一个屏幕分辨率判断,不同分辨率用不同的坐标。


今天的完整流程长什么样

把今天讲的所有内容串起来,完整的ERP按钮自动点击流程是这样的:

  1. 启动影刀,新建一个应用
  2. 逐个捕获ERP系统里的8个按钮,存到元素库
  3. 定义一个列表变量,里面放8个按钮的名称
  4. 用ForEach循环,遍历这个列表
  5. 循环体里:用"点击元素"指令点当前按钮;用Try-Catch包住点击指令,失败就记录日志继续
  6. 点完一个按钮以后,用"等待"指令等2秒,让界面加载完
  7. optionally:点完每个按钮以后截一张图,作为执行记录
  8. 循环结束后,发飞书通知:“任务完成”
  9. 测试运行,用断点调试确认每一步都对
  10. 保存发版,配置定时任务,每天自动跑

这个流程我实际用了三个月,每天帮我节省20分钟,三个月就是20个小时。

这20个小时拿来干什么不好?


#影刀RPA #RPA教程 #鼠标自动化 #零基础入门 #元素点击 #坐标点击

作者:林焱

相关新闻

  • 并查集题解:合并之前,先问清楚关系会不会传递
  • LTC6903与PIC18F86J11构建数字控制振荡器方案
  • 实战指南:5步精通MDUT多数据库利用工具的开发与定制

最新新闻

  • 三步搭建智能UI测试系统:从视觉回归到交互诊断
  • 端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑
  • PIC18F45K22与LARA-R6401 LTE模块的嵌入式物联网开发指南
  • Dify 开源 AI 应用开发平台:从零部署到工作流与 API 集成实战
  • Digital-Logic-Sim:从零构建计算机的数字电路模拟器实战指南
  • 本地AI绘画新体验:Cowart插件实现无限画布与精准局部重绘

日新闻

  • STM32F745VG与MC6470 IMU的高性能姿态控制系统设计
  • 机器不消费,人何以生存
  • AI项目操作手册编写规范与最佳实践

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号