news 2026/7/22 16:23:56

Sikuli脚本中的控制语句

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Sikuli脚本中的控制语句

SikuliX 的脚本语言其实是Jython(Python语法),所以判断、循环、函数、异常处理等控制结构全部使用 Python 语法


一、判断语句(if)

语法说明示例
if条件判断if exists("ok.png"):
elif否则如果elif exists("cancel.png"):
else否则else:

示例:

ifexists("ok.png"):click("ok.png")elifexists("cancel.png"):click("cancel.png")else:popup("没找到按钮")

二、常见判断条件

判断方式示例
图片是否存在exists("btn.png")
区域是否存在region.exists("btn.png")
匹配结果是否为空if m:
字符串判断if text == "Login":

示例:

m=exists("btn.png")ifm:click(m)

三、while 循环

语法说明
while条件循环
break跳出循环
continue跳过本次循环

示例:

whileTrue:ifexists("enemy.png"):click("enemy.png")sleep(1)

停止循环:

whileTrue:ifexists("exit.png"):break

四、for 循环

语法说明
for遍历循环
range()循环次数

示例:

foriinrange(5):click("btn.png")

输出:

print(i)

五、遍历查找结果

Sikuli常见用法:

forminfindAll("icon.png"):click(m)

六、嵌套循环

foriinrange(3):forjinrange(5):click("btn.png")

七、函数定义

语法说明
def定义函数

示例:

deflogin():click("user.png")type("admin")click("pass.png")type("123456")click("login.png")

调用:

login()

八、异常处理

Sikuli最常见异常:

FindFailed

示例:

try:click("login.png")exceptFindFailed:popup("没找到按钮")

九、条件循环(常见自动化)

自动挂机脚本常见写法:

whileTrue:ifexists("enemy.png"):click("enemy.png")ifexists("skill.png"):click("skill.png")sleep(0.5)

十、等待循环(推荐写法)

避免CPU占用:

whilenotexists("login.png"):sleep(1)

十一、带计数循环

count=0whilecount<10:click("btn.png")count+=1

十二、事件回调函数

Sikuli监听常见写法:

defattack(event):click(event.getMatch())onAppear("enemy.png",attack)observe(10)

十三、逻辑运算符

运算符说明示例
and并且if exists("a.png") and exists("b.png"):
or或者if exists("a.png") or exists("b.png"):
not取反if not exists("a.png"):

示例:

ifexists("login.png")andexists("password.png"):click("login.png")

十四、三元表达式

简写判断:

result="yes"ifexists("ok.png")else"no"

十五、脚本主入口(推荐写法)

大型脚本常见结构:

defmain():whileTrue:ifexists("start.png"):click("start.png")sleep(1)main()

十六、一个完整Sikuli脚本示例

deffight():whileTrue:ifexists("enemy.png"):click("enemy.png")elifexists("boss.png"):click("boss.png")else:sleep(1)defmain():App.open("game.exe")wait("start.png",10)click("start.png")fight()main()

在 Sikuli 里:

  • GUI操作 → Sikuli API
  • 逻辑控制 → Python语法

所以脚本结构通常是:

while if exists click
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 16:19:26

成都、重庆等西南地区有哪些靠谱企业线上培训考试平台推荐?

一、西南地区企业培训现状与痛点&#xff08;一&#xff09;区域发展催生多元化培训需求2026年政府工作报告提出&#xff0c;要提升成渝地区双城经济圈发展能级。数据显示&#xff0c;2025年&#xff0c;成渝地区双城经济圈经济总量超9万亿元&#xff0c;占全国比重升至6.5%左右…

作者头像 李华
网站建设 2026/7/14 14:16:04

VideoAgentTrek Screen Filter 与物联网结合:智能终端屏幕状态监控系统

VideoAgentTrek Screen Filter 与物联网结合&#xff1a;智能终端屏幕状态监控系统 你有没有遇到过这种情况&#xff1f;商场里的自助点餐机突然黑屏&#xff0c;顾客只能干等着&#xff1b;地铁站的广告屏卡在某个错误画面&#xff0c;一整天都没人管&#xff1b;工厂车间的操…

作者头像 李华
网站建设 2026/7/14 14:16:06

攻防世界 crypto题GFSJ0527-【easy_RSA】

1.工具&#xff1a;thonny2.解题&#xff1a;打开附件&#xff0c;看到如下在一次RSA密钥对生成中&#xff0c;假设p473398607161&#xff0c;q4511491&#xff0c;e17 求解出d*RSA加密算法&#xff1a;①算法原理&#xff1a;RSA是一种非对称加密算法&#xff1b;②CTF中的常见…

作者头像 李华
网站建设 2026/7/14 14:16:05

飞牛云APP远程连接避坑指南:如何解决非HTTPS连接和随机地址变更问题

飞牛云APP远程连接高阶优化指南&#xff1a;从基础配置到企业级稳定方案 在数字化办公日益普及的今天&#xff0c;远程访问私有NAS设备已成为许多技术从业者和数字工作者的刚需。飞牛云APP作为连接fnOS系统的移动端入口&#xff0c;其稳定性和易用性直接影响着工作效率。本文将…

作者头像 李华