Image Sikuli中图像的验证/断言:是否存在IMG1或IMG2

Image Sikuli中图像的验证/断言:是否存在IMG1或IMG2,image,if-statement,exists,sikuli,Image,If Statement,Exists,Sikuli,我真的在为这条线挣扎 如果mImg1或mImg2: 如果出现2幅图像中的1幅,我将尝试在设定的时间内进行监控。如果它这样做了,那么它将执行所需的操作。我只是无法获得正确的语法来执行上面的IF语句 如果其中一个不是null,那么我希望它打破循环。如果没有,则继续循环 weWait = 10 while weWait > 0: mImg1 = exists("1379615300466.png",1) mImg2 = exists("1379534637993.png",1) print

我真的在为这条线挣扎

如果mImg1或mImg2:

如果出现2幅图像中的1幅,我将尝试在设定的时间内进行监控。如果它这样做了,那么它将执行所需的操作。我只是无法获得正确的语法来执行上面的IF语句

如果其中一个不是null,那么我希望它打破循环。如果没有,则继续循环

weWait = 10
while weWait > 0:
 mImg1 = exists("1379615300466.png",1)
 mImg2 = exists("1379534637993.png",1)
 print mImg1
 print mImg2
  if mImg1 or mImg2:
   print "breaking"
   break
  wait (1)
  weWait = weWait - 1

if not (mImg1 and mImg2):
  print "niether image appeared"
  exit(1)

if mImg2:
  print "img2 appeared"
  exit(1)

if mImg1:
print "img1 appeared"
exit(1)
我是一个爱好者,并为不正确的术语道歉

提前感谢。

exists()返回匹配对象。您应该检查它是否为空。检查它是否为null将返回true或false,可在if语句的参数中使用该值返回匹配对象。您应该检查它是否为空。检查它是否为null将返回可以在if语句的参数中使用的true或false


如果mImg1或mImg2!=Null:未定义Null。太令人沮丧了。希望 我好多了

在Jython脚本中,您应该使用

if mImg1 != None or mImg2 != None: 

如果mImg1或mImg2!=Null:未定义Null。太令人沮丧了。希望 我好多了

在Jython脚本中,您应该使用

if mImg1 != None or mImg2 != None: 

我现在觉得这个话题有点老了,但我来这里是因为我在寻找同样的答案
现在这个问题在这里没有得到回答,所以我分享我的解决方案

我所做的是,我用“while True”来做一个循环,看看图像是否已经可见
如果是这种情况,我们对图像做一些处理,并打破while循环

示例代码:
(西库利与蟒蛇)


我现在觉得这个话题有点老了,但我来这里是因为我在寻找同样的答案
现在这个问题在这里没有得到回答,所以我分享我的解决方案

我所做的是,我用“while True”来做一个循环,看看图像是否已经可见
如果是这种情况,我们对图像做一些处理,并打破while循环

示例代码:
(西库利与蟒蛇)

Sikuli Java代码:

import org.sikuli.script.FindFailed;
Screen screen = new Screen();
try{
    if(screen.exists("img1.png") != null || screen.exists("img2.png") != null){
        //DO YOUR ACTIONS
        screen.click("img1.png");
        }
    }
catch(FindFailed e){
    e.getStackTrace();
}
或者,您可以使用TestNG或JUnit进行断言,如下所示:

Match img1 = screen.exists("img1.png");
assertTrue(img1 != null);
对img2执行同样的操作。

Sikuli Java代码:

import org.sikuli.script.FindFailed;
Screen screen = new Screen();
try{
    if(screen.exists("img1.png") != null || screen.exists("img2.png") != null){
        //DO YOUR ACTIONS
        screen.click("img1.png");
        }
    }
catch(FindFailed e){
    e.getStackTrace();
}
或者,您可以使用TestNG或JUnit进行断言,如下所示:

Match img1 = screen.exists("img1.png");
assertTrue(img1 != null);

对img2执行同样的操作。

您可以通过使用以下方法实现这一点,只需调用此方法并将图像名称作为参数发送即可

  /**
  * Check and verify the image using Sikuli-Script
  */
 public boolean  verifyImageExists(String imageName){

     boolean isValid = false;
     try {
            Screen screen = new Screen();
            Pattern image = new Pattern(AppConstant.RESOURCE_DIR+imageName);
            //Wait 10ms for image 

            try 
            {
                screen.wait(image, 10);
            } catch (FindFailed e1)
            {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            if(screen.exists(image)!= null)
            {
                isValid = true;
            }
        }
        catch(Exception e){

        }
     return isValid;
 }

您可以使用以下方法实现这一点,只需调用此方法并将图像名称作为参数发送即可

  /**
  * Check and verify the image using Sikuli-Script
  */
 public boolean  verifyImageExists(String imageName){

     boolean isValid = false;
     try {
            Screen screen = new Screen();
            Pattern image = new Pattern(AppConstant.RESOURCE_DIR+imageName);
            //Wait 10ms for image 

            try 
            {
                screen.wait(image, 10);
            } catch (FindFailed e1)
            {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            if(screen.exists(image)!= null)
            {
                isValid = true;
            }
        }
        catch(Exception e){

        }
     return isValid;
 }

嗯,不过我在使用时确实读过这篇文章!=null它似乎仍然不起作用,并且发现某些东西是匹配的。非常感谢。如果mImg1或mImg2!=Null:未定义Null。太令人沮丧了。但愿我更好!在Java中,如果(mlmg1!=null | | mlmg2!=null)Hmmm,我确实在使用!=null它似乎仍然不起作用,并且发现某些东西是匹配的。非常感谢。如果mImg1或mImg2!=Null:未定义Null。太令人沮丧了。但愿我更好!在Java中,如果(mlmg1!=null | | mlmg2!=null)请将标题更新为更具描述性的名称,不要将标记添加到标题中。请将标题更新为更具描述性的名称,不要将标记添加到标题中。