Find sikuli中list()的奇怪行为

Find sikuli中list()的奇怪行为,find,behavior,sikuli,Find,Behavior,Sikuli,以上是代码。在这里,我试图在桌面上找到所有MS excel图标,然后 一个接一个地打印。当我运行这个程序时,只有第三行代码的输出在sikuli的消息框中可见,它没有打印第五行。 输出:- findAll(Pattern("excel_icon.png").similar(0.9)) nn = getLastMatches() print "nn -> ",list(nn) while nn.hasNext(): print "excel --> ",nn.next() 但是

以上是代码。在这里,我试图在桌面上找到所有MS excel图标,然后 一个接一个地打印。当我运行这个程序时,只有第三行代码的输出在sikuli的消息框中可见,它没有打印第五行。 输出:-

findAll(Pattern("excel_icon.png").similar(0.9))
nn = getLastMatches()
print "nn -> ",list(nn)
while nn.hasNext():
    print "excel --> ",nn.next()
但是,当我用第三行中的
nn
替换
list(nn)

nn -> [Match[470,936 53x56 score=0.98 target=center], Match[394,936 53x56 score=0.98 target=center]
我得到的结果是:-

print "nn -> ",nn
当我在第三行中使用line()时,我不明白为什么它不打印第五行。有人能帮我吗???

getLastMatches()返回类查找器的对象,它是一个迭代器

以下代码:

nn -> org.sikuli.script.Finder@4b0431
excel --> Match[470,936 53x56 score=0.98 target=center]
excel --> Match[394,936 53x56 score=0.98 target=center]
迭代nn,而

不迭代

这就是为什么nn.hasNext()在首先执行list(nn)后返回false。要更好地理解它,请按如下方式运行两次:

print "nn -> ",nn

“second while”之后将不会显示任何内容。

上述代码中存在错误。“exfind”应替换为“nn”。@MarcinKowalczyk抱歉,我的意思是“nn”而不是“exfind”,我已经编辑了代码
print "nn -> ",nn
print "first while"
while exfind.hasNext():
    print "excel --> ",exfind.next()
print "second while"
while exfind.hasNext():
    print "excel --> ",exfind.next()