【问题标题】:Sikuli - FindFailed in very simple scriptSikuli - FindFailed 在非常简单的脚本中
【发布时间】:2016-10-28 03:50:57
【问题描述】:

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

当我运行它时,它几乎立即返回以下错误...

[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 -------------

我做错了什么?

【问题讨论】:

    标签: sikuli


    【解决方案1】:

    当您使用 wait(image,time) 时,程序会尝试在该区域中查找图像。如果程序找不到图像,则抛出错误消息并完成执行。要处理此错误,请尝试使用下一个:

    # 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))
    

    如您所见,similar 的值将百分比设置在 0 和 1 之间。

    PD:我的英语不太好。我还在学习;)

    【讨论】:

    • 别担心,你的英语很完美。 :-) +1 的答案。
    【解决方案2】:

    我认为 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      • 2010-11-25
      • 2020-02-03
      相关资源
      最近更新 更多