簡體   English   中英

Sikuli腳本

[英]Sikuli scripting

我想編寫一個sikuli腳本,該腳本可以清除“回收站”是否已滿(第一次執行時),並且需要檢查該圖標是否為空並顯示(回收站為空)

以下是我嘗試過的代碼:

嘗試1-不存在(“ 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")

我的問題是,在回收站為空(或)已滿的情況下,盡管回收站為空(或)已滿,否則其他部分在sikuli中執行之前的while循環(或)else部分在sikuli中執行,sikuli沒有進行任何完整的分析並根據需要執行它。

請有人幫我解決這個問題,因為我對sikuli和python比較陌生。

謝謝,V.Prashanth

首先,請轉到Sikuli IDE中代碼中圖標圖片的顯示位置。 嘗試單擊圖片,然后轉到匹配的預覽選項卡,並將相似性從默認值.7更改為更高的值(.9或.95),然后查看是否可以解決問題。

由於完全回收站的圖片和空回收站的圖片非常相似,因此提高相似性會迫使Sikuli僅在與您在IDE中捕獲的圖片幾乎完全相同(匹配90%或95%)時才允許匹配,而不是只返回70%的匹配項返回匹配項。

如果那不能解決問題,則可能還有其他嘗試,但我會首先嘗試。

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”圖片,請注意不要在該圖片中看到進度條。 只要找到一些可以安全引用的靜態文本/菜單即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM