我真的很挣扎
if mImg1 or 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)
我是一名发烧友并为不正确的术语道歉。
提前致谢。
答案 0 :(得分:2)
如果mImg1或mImg2!= Null:null未定义。 Sooooo令人沮丧。希望 我好多了!
在Jython脚本中你应该使用
if mImg1 != None or mImg2 != None:
答案 1 :(得分:2)
您可以通过使用以下方法实现此目的,只需调用此方法并将图像名称作为参数发送。
/**
* 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;
}
答案 2 :(得分:1)
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做同样的事。
答案 3 :(得分:0)
exists()返回一个Match对象。您应该检查它是否为空。检查它是否为null将返回true或false,可以在if语句
的参数中使用答案 4 :(得分:0)
我现在这个话题有点陈旧,但我来到这里是因为我一直在寻找相同的答案。
现在这个问题不能在这里得到解答,所以我正在分享我的解决方案。
我做的是,我使用的是#34;而真的"制作循环并查看图像是否已经可见。
如果是这种情况,我们会对图像执行某些操作并打破while循环。
示例代码:
(Sikuli with Python)
Image1 = ("image1.png")
Image2 = ("image2.png")
class Multi():
def __init__(self):
self.Search()
def Search(self):
# Look when one of the two images appear.
while True:
print('Searching....')
if exists(Image1):
print('Image1 located!')
click(Image1)
# Break loop.
break
elif exists(Image2):
print('Image2 located!')
click(Image2)
# Break loop.
break
else:
pass
# Run class
Multi()