Frage

Ich habe für eine Weile Sikuli benutzen, aber ich habe ein Problem mit ihm ... Es ist nicht empfindlich genug. Ich versuche, etwas auf dem Bildschirm übereinstimmen, die -EXACT- ist, und es gibt ein paar andere Elemente auf dem Bildschirm, der genug aussehen, dass Sikuli ist zu verkennen sie für das, was ich eigentlich suchen, so muss ich es machen suche nur dieser Einzelteil ohne Abweichungen überhaupt.

Wie kann ich das tun?

Oh, und mein Problem zu erklären, ein bisschen weiter, ich bin eine Schleife für ein Spiel zu schreiben, sobald ein Fortschrittsbalken 100% erreicht hat - es muss der Schleife ermöglichen, zu beenden (und wieder von vorn beginnen), aber die Fortschrittsbalken nur eine einfache Bar ist -. so, wenn Sikuli für sie auf dem Bildschirm sieht, findet er das teilweise komplett bar (Da scheinbar paßt es unterschiedliche Längen / Breite / Größen des Bildes für sie sucht) und Trigger

War es hilfreich?

Lösung

Sie können die folgenden in der Sikuli IDE tun:

  • Klicken Sie auf das Bild
  • Im Pattern Einstellungen> Passende Vorschau, ziehen Sie die Ähnlichkeit bar bis 1,0 (ganz nach rechts)
  • Klicken Sie auf OK

Andere Tipps

Wenn Sie Sikuli IDE auf das Bild klicken Miniatur verwenden, für die Sie Empfindlichkeit ändern möchten. Sie werden Screenshot von Ihrem Desktop mit und Vorkommen von Mustern (Ihr Bild) präsentiert werden. Darunter ist eine Empfindlichkeit Hexe Änderungen Schieber. Während es ändern, werden Sie feststellen, dass Vorkommen des Musters Erhöhung hervorgehoben oder entsprechend verringern.
Diese Methode setzt voraus, dass Sie Ihr Spiel auf dem Bildschirm (so Fenstermodus nicht Vollbild), aber auch wenn Sie nicht über noch Empfindlichkeit einstellen können, so werden Sie nicht ‚live‘ Ergebnisse der Suche sehen.

Wenn Sie Sikuli von Java-Code aufrufen, haben Sie Pattern(image.png).similar(y.xx)
verwenden wo das Argument von simmilar ist etwas zwischen 0,00 und 1,00.
Ich habe nicht zweite Methode verwendet, so dass Sie damit experimentieren müssen.

Wird die folgende Arbeit?
Sie suchen den Fortschritt 100% dann die Schleife wieder zu erreichen?

  f = open("C:\\test.htm",'W')
    f.write('<font color="#347C2C">lOOPtEST</font><br />')
    f.write('loop iteration' + (str (count)) + '<br />')
    count = count + 1
    f.close()
COUNT =10
POPUP("LOOPTEST")

//image compare from progress bar

import sikuli.Sikuli *

WebPath =('Z:\\ZZZautomation\\Web\\')

BuildPath = ("Z:\BUILDS\Daily_BUILDS\QA_MainBranch_Install\*.install")
BuildNumber =  glob.glob("Z:\BUILDS\Daily_BUILDS\QA_MainBranch_Install\*.install")
for filename in BuildNumber:
    SmokeTestInfo = "SmokeTest_Build " + filename[45:50] + " Iteration 44"+".htm"
global Number
Number = filename[45:50]

global SmokeTest
SmokeTest = SmokeTestInfo

global count
count = 0

defMidProgress():
    while not exists ("//path to image of progress bar @ 50%//",FOREVER)
    //or
    wait("//path to image of progress bar @ 50%//", FOREVER)
    //using forevEr means sikuli will checK FOR 50% PROGRESS FOREVER
    //the bottom execures once the condition above is met
    open(WebPath + SmokeTest,'w')
    f.write('<font color="#0000FF">Progress is at 50%</font><br />')
    f.close()
    // writes entry to html log fie

defFinalProgress():

    while not exists ("//path to image of progress bar @ 100%//",FOREVER)
    //or
    wait("//path to image of progress bar @ 100%//", FOREVER)
    //using forever means sikuli will check FOR 100% PROGRESS FOREVER
    //the bottom execures once the condition above is met
    open(WebPath + SmokeTest,'a')
    f.write('<font color="#0000FF">Progress is at 100%</font><br />')
    f.close()
    // writes entry to html log fie


def Loop
count =0
 def midProgress():

 def FinalProgress():

ein genaues Bild passen Ich benutze:

image1 = ("image1.png")
while not exists (Pattern(image1).exact()): 
       # Wait until that exact image appears. 
       wait(1) 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top