我是Sikuli的新手,我正在用一个非常简单的脚本尝试它,看起来像这样......
当我运行它时,几乎immediatley返回以下错误...
[error] script [ Untitled ] stopped with error in line 2
[error] FindFailed ( can not find 1476712210350.png in R[0,0 1366x768]@S(0) )
[error] --- Traceback --- error source first line: module ( function ) statement 55: Region ( wait ) Line 2189, in file Region.java
[error] --- Traceback --- end -------------
我做错了什么?
答案 0 :(得分:2)
当您使用等待(图像,时间)时,程序会尝试在该区域中查找图像。如果程序找不到图像,则抛出错误消息并完成执行。要处理此错误,请尝试使用下一个:
# First, check if image exists for n seconds
# Pattern and similar, set how much similar your image will be.
if exists(Pattern("GoogleSearch.png").similar(0.8), time_in_seconds):
if exists(Pattern("FeelingLucky.png").similar(0.6), time_in_seconds):
click(Pattern("FeelingLucky.png").similar(0.6))
如您所见,类似的值将百分比设置为0到1之间。
PD:我的英语不太好。我还在学习;)答案 1 :(得分:1)
我认为Michael正在给出一个很好的例子,但如果你对Sikuli完全不熟悉,也许有点难以理解。
openApp(r"<Fill_In_Your_Path_Etc>")
while not exists("GoogleSearch.png"):
#Wait 1 second, then check again for the image.
wait(1)
click("ButtonLucky.png")
上面的代码也可以正常工作,但要注意无限循环。
如果找不到图像GoogleSearch.png
,上面的代码将永远等待。
为了确保不创建无限循环,可以在循环次数达到x次后添加break
。