Sikuli - FindFailed非常简单的脚本

时间:2016-10-17 13:56:11

标签: sikuli

我是Sikuli的新手,我正在用一个非常简单的脚本尝试它,看起来像这样......

enter image description here

当我运行它时,几乎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 -------------

我做错了什么?

2 个答案:

答案 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