【问题标题】:Sikuli scriptingSikuli 脚本
【发布时间】:2018-05-14 14:43:12
【问题描述】:

我想写一个sikuli脚本,如果“回收站”已满(第一次执行时)可以清除它,并且需要检查图标是否为空并显示(回收站为空)

以下是我尝试过的代码:

尝试 1 - while not exists("RecycleBin-1.png"): --> “回收站已满”时的图像 rightClick("RecycleBin-1.png") --> "右键单击回收站" 完整图标。 click("EmptyRecycle.png") --> 确认删除所有项目的图片。

click("1406033619416.png") --> Image of "Recycle bin" is empty
print ("Recycle bin has been emptied")
else:
while exists ("RecycleBin.png"): 
print ("Recycle bin is already empty")

尝试 2 - 虽然不存在(“RecycleBin-1.png”): rightClick("RecycleBin-1.png") click("EmptyRecycle.png")

click("1406033619416.png")
print ("Recycle bin has been emptied")
else:
print ("Recycle bin is empty")

我的问题是 else 执行之前的 while 循环(或)尽管回收站为空(或)已满,但 else 部分在 sikuli 中执行,sikuli 没有进行任何完整的分析并在必要时执行它。

请任何人帮助我,因为我对 sikuli 和 python 比较陌生。

谢谢, V.Prashanth

【问题讨论】:

  • 我不清楚你的问题,确切地说。当回收站实际上已满时,Sikuli 是否错误地匹配了“空”回收站的图片?反之亦然(Sikuli 错误地匹配了一个已满的回收站的图片,而实际上它是空的)?
  • 是的,即使我的“回收站”图标显示它是空的,sikuli 也会尝试清除回收站并引发错误。根据上面的代码,我有一个 else 部分来打印“回收站是空的”,这根本没有发生。

标签: python sikuli


【解决方案1】:

首先,请转到图标图片出现在 Sikuli IDE 代码中的位置。尝试单击图片,然后转到匹配的预览选项卡,将相似度从默认的 0.7 更改为更高的值(0.9 或 .95),看看是否能解决问题。

由于已满回收站的图片和空回收站的图片非常相似,因此提高相似度会迫使 Sikuli 仅在与您拍摄的图片几乎相同(90% 或 95% 匹配)时才允许匹配在 IDE 中,而不是返回任何只有 70% 匹配的匹配项。

如果这不能解决问题,可能还有其他方法可以尝试,但我会先尝试。

【讨论】:

    【解决方案2】:

    autoKarma 很准,你需要增加相似度;因为垃圾桶图标是静态的,我会把它一直推到 99%。仅供参考,IDE 会抑制下面的文本“.similar(0.##)”,但如果您检查 IDE 在保存时生成的 .py 文件,它就会在那里。

    我对你的循环进行了更多修改,我对 Sikuli 的经验是,你最终会得到很多......很多循环,以确保 Sikuli 能够处理不可避免地与模式识别有关的奇怪问题。下面的代码是未经测试的代码,大致反映了 Mac,尽管至少我的代码在开始清除之前会弹出“您确定要删除此”警告,因此您的里程可能会有所不同。

    def take_out_the_trash():
        while exists(Pattern("Full_RecycleBin.png").similar(0.99)):
            rightClick("Full_RecycleBin.png")
            wait 1
            while exists(Pattern("EmptyRecycle_Button.png").similar(0.99)):
                click("EmptyRecycle_Button.png")
                wait 1
            while exists (Pattern("Emptying_trash_in_progress.png").similar(0.90)):
                 wait 2
    
    take_out_the_trash()
    

    对于“Emptying_trash_in_progress”图片,注意不要拿到图片中的进度条;只需找到一些可以安全引用的静态文本/菜单。

    【讨论】:

      猜你喜欢
      • 2019-10-02
      • 2011-02-08
      • 2013-08-14
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-10
      • 2012-04-29
      相关资源
      最近更新 更多