【问题标题】:Can Sikuli observe changes in mouse pointer? (responsive vs non-responsive mouse)斯库里能观察到鼠标指针的变化吗? (响应鼠标与非响应鼠标)
【发布时间】:2016-03-26 04:01:38
【问题描述】:

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

这里报告了一个类似的问题: How do I get sikuli to wait until the mouse pointer changes from "busy" to "not busy?"

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

【问题讨论】:

    标签: javascript python jython sikuli


    【解决方案1】:

    我不相信 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 2015-12-04
      相关资源
      最近更新 更多