سؤال

لقد كنت أستخدم Sikuli لحظة، ولكن لدي مشكلة معها ... إنها ليست حساسة بما فيه الكفاية. أحاول مطابقة شيء ما على الشاشة، وهناك عدد قليل من العناصر الأخرى على الشاشة التي تبدو مشابهة بما فيه الكفاية أن Sikuli يخطئون لهم لما أبحث عنه بالفعل، لذلك أحتاج إلى جعله ابحث عن هذا العنصر فقط بدون فروق على الإطلاق.

كيف يمكنني أن أفعل هذا؟

أوه وشرح مشكلاتي أكثر من ذلك، فأنا أكتب حلقة للعبة، بمجرد أن يصل شريط التقدم إلى 100٪ - يحتاج إلى السماح للنسخة الانتهاء (والبدء من جديد)، لكن شريط التقدم هو مجرد شريط عادي - لذلك عندما يبحث Sikuli عن ذلك على الشاشة، يجد شريط كامل جزئيا (نظرا لأنه يبدو أنه يطابق أطوال / أحجام / أحجام مختلفة من الصورة التي تبحث عنها)، وتشغيلها.

هل كانت مفيدة؟

المحلول

يمكنك القيام بما يلي في Sikuli IDE:

  • انقر على الصورة
  • في إعدادات النمط> معاينة مطابقة، اسحب شريط التشابه إلى 1.0 (طوال الطريق إلى اليمين)
  • انقر فوق موافق

نصائح أخرى

إذا كنت تستخدم Sikuli IDE، انقر فوق صورة مصغرة، والتي تريد تغيير الحساسية. سيتم تقديم لقطة شاشة لسطح المكتب الخاص بك وتأثيرات النمط (صورتك). أدناه هناك الساحرة المنزلق تغير الحساسية. أثناء تغييره، ستلاحظ أن حدوث حوادث زيادة النمط أو نقصانها وفقا لذلك.
تفترض هذه الطريقة أن لديك لعبتك على الشاشة (حتى الوضع النوافذ، وليس ملء الشاشة)، ولكن حتى لو كنت لا تزال تستطيع ضبط الحساسية، فقط لن ترى نتائج "Live" للبحث.

إذا اتصلت ب Sikuli من رمز Java، فعليك استخدامها Pattern(image.png).similar(y.xx)
حيث حجة Simmilar هي شيء ما بين 0.00 و 1.00.
لم أستخدم الطريقة الثانية حتى تحتاج إلى تجربة ذلك.

سوف العمل التالي؟
أنت تبحث عن التقدم إلى 100٪ ثم حلقة مرة أخرى؟

  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():

لتتناسب مع صورة دقيقة أستخدمها:

image1 = ("image1.png")
while not exists (Pattern(image1).exact()): 
       # Wait until that exact image appears. 
       wait(1) 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top