2017-12-19 5 views
0

私はSikuliに新しいですし、このようになり、非常に簡単なスクリプトでそれをしようとしています続けて...Sikuli IDEのコマンド待ち(「画像」)

待ち時間をクリックしますcmdsが使用されていて、動作しています。私が直面している問題はwait("1513068228396.png",3600)です。画像が表示されるまで待たずに、10〜15秒待って次のcmdを実行します。私はいくつかのログを含めてみましたが、同じ結果を得るために同じ画像を他の画像と共に試しました。

wait("1513067960826.png",60) 
click(Pattern("1513066493827.png").targetOffset(-106,2)) 
sleep(2) 
click("1513066637741.png") 
sleep(1) 
click("1513599247108.png") 
sleep(5) 
print "wait for my image" 

wait("1513068228396.png",3600) # Facing issue in this line 

print "found my image" 

outputLog:

wait for my image 
[debug] Region: find: waiting 3600.0 secs for 1513068228396.png to appear in R[0,0 1920x1080]@S(0) 
[debug] Image: reused: 1513068228396.png (file:/D:/softwares/sikuli/SENINFO_V100R002C00SPC700.sikuli/1513068228396.png) 
[debug] Region: checkLastSeen: not there 
[debug] Region: find: 1513068228396.png has appeared at M[832,379 30x16]@S(S(0)[0,0 1920x1080]) S:0.70 C:847,387 [753 msec] 
found my image 

この問題を解決するためにどのように任意の提案。

答えて

0

wait(pattern, 3600)は、wait(pattern, FOREVER)と等価であり、と記載され、無期限にパターンを待機します。あなたのような場合には、パターンが実際に画面上で発見された場合に、この現象を説明できる唯一のものであり、以下の行があることを確認します。find:

地域1513068228396.pngはMで登場している[832379 を30x16] @S(S(0)[0,0 1920×1080])S:0.70 C:847387 [753ミリ]

おそらく、このパターンは他の場所で表示され、あなたがそれを逃しましたか?または、類似性パラメータが低すぎる可能性があり、別のパターンが認識される可能性があります。それを確認するには、highlight(1)メソッドを使用してみてください。

ptrn = find("pattern.png") 
ptrn.highlight(1) 

これは、いくつかの光を放つかもしれません。

1

おそらく、その画像は画面の一部の領域と類似している可能性があります。類似度を最高値に設定しようとするとよいでしょう:

wait(Pattern("some_image.png").similar(0.8),) # if you want the 80% of similarity 
wait(Pattern("some_image.png").exact()) # if you want the 100% of similarity 

また、待機する代わりに存在する場合は、使用することをお勧めします。イメージが存在しない場合は、プログラムを終了します待っ:

if exists(Pattern("some_image.png").exact(),3600): 
    click("some_image.png") 

あなたは、パターン・ドキュメントにhere

+0

'待機(。パターン( "some_image.png")(0.8)と同様の、3600)'これを見つけることができますコードのラインは、問題を解決した、ありがとう.. :) –

関連する問題