Sikuli可以观察到鼠标指针的变化吗?(响应式鼠标与无响应鼠标)

Can Sikuli observe changes in mouse pointer? (responsive vs non-responsive mouse)

本文关键字:响应 鼠标 观察 鼠标指针 变化 Sikuli      更新时间:2023-09-26

我正在使用Sikuli(Sikuli 1.1.0和Windows 7)控制Windows GUI。烦人的是,向导有时需要很长时间才能加载向导的下一阶段,在这些情况下,我的 Sikuli 脚本崩溃,因为它不等待它。在这些滞后时间,我让旋转的窗口圆圈作为鼠标。更糟糕的是,有时也会发生"下一步"按钮出现(我正在等待 Sikuli 的按钮),但鼠标尚未准备好单击它,并且仍处于旋转圆圈模式额外 20-30 秒。我不想在向导的每个阶段指定 30 秒的等待时间,因为这会不必要地大幅减慢脚本执行速度;特别是因为大多数时候我不需要它。

这里报告了类似的问题:如何让 sikuli 等到鼠标指针从"忙"变为"不忙"?

我想知道是否有关于这个问题的一些更新?Sikuli 能否识别出鼠标是否仍处于旋转圆无响应模式并会等到鼠标恢复正常?

我不相信 Sikuli 支持此功能,但是您可以以某种方式解决此问题。

使用exact匹配项,然后您必须循环,直到您尝试键入的字段从空白字段更改为包含文本的内容(或您要更改的任何元素)。 一旦你检测到变化,你就知道事情不再被锁定。

但基本上你会卡在循环中循环和执行操作,直到你能检测到你尝试执行的操作已经卡住了。

下面是一个可用于处理此问题的基本类。

class Element:
    def __init__(self, element, region):
        self.element = element
        self.region = region
    def stateChanged(self):
        if self.region.exists(Pattern(self.element).exact()):
            return False
        return True
gmailEmailField = Element("1458930208197.png", Region(438,239,388,342))
while not gmailEmailField.stateChanged():
    wait(.5)