以 Region 作为参数的 Sikuli jython 函数不起作用

问题描述 投票:0回答:1

我在 jython 上有 Sikuli 脚本,其目的是顺序等待出现并单击图像。

根据 Sikuli 的说法,可以使用

wait
click
函数来完成。两个函数都采用相同的参数 - 等待并单击的图像。

我正在使用 Sikuly IDE,其中图像被引用为缩略图。所以,我必须使用相同的缩略图两次才能实现我的目标。

我尝试创建一个以图像作为参数的函数:

def wcl(PSRML):
    wait(PSRML, 10)
    click(PSRML)   

wcl(<Region image here>)

但它不起作用:

[error] script [ hs1 ] stopped with error in line 6
[error] java.lang.IllegalArgumentException ( java.lang.IllegalArgumentException: SikuliX: find, wait, exists: invalid parameter: R[2707,673 225x179]@S(0) )
[error] --- Traceback --- error source first
line: module ( function ) statement 
65: Sikuli (  wait )     return SCREEN.wait(target, timeout)
2: main (  wcl )     wait(PSRML, 10)
6: main (  <module> )     wcl(Region(2707,673,225,179))
[error] --- Traceback --- end --------------

编写这个函数的正确方法是什么?

jython sikuli sikuli-ide
1个回答
0
投票

这是来自 SikuliX 的 RaiMan。

屏幕截图(您说的是缩略图)是要在屏幕上搜索的图像,是使用最左侧的工具栏按钮(截取屏幕截图)在 IDE 中拍摄的。

因此,您的

wait and click
最简单的版本是:

click(screenshot)

等待 3 秒(标准)图像出现,然后单击比赛的中间。

如果您需要等待更长的时间才能看到图像,那么您可以说:

click(wait(screenshot, time)) # time in seconds

这与:

相同
wait(screenshot, time))
click() # which clicks the last match

因此无需两次拍摄相同的镜头。

在任何情况下,如果未找到图像并且脚本停止,您都会收到 FindFailed 异常。

我建议至少阅读文档以了解有关功能和可能性的想法(https://sikulix-2014.readthedocs.io/en/latest/index.html)。

© www.soinside.com 2019 - 2024. All rights reserved.