Я взаимодействую с приложением с графическим интерфейсом как локально, так и удаленно (через VPN). Когда я работаю с ним локально, большинство действий происходят довольно быстро, и мои сценарии сикули выполняются нормально. Однако, когда я работаю с ним удаленно, действия выполняются дольше.
То есть Sikuli может определить экран и элементы для ожидания, но курсор все еще «занят» (например, вращающийся круг в окнах). Это приводит к тому, что мои сценарии сикули ломаются при удаленной работе с приложением из-за увеличения «задержки» (не уверен, что это правильный термин для этого).
Например, если бы я сделал
wait(laggy_field.jpg)
click(laggy_field.jpg)
type("so laggy")
Сикули будет ждать laggy_field. Laggy_field появится, но курсор все еще будет занят. Однако сикули, похоже, не знает об этом, перемещает курсор на поле и щелкает поле. В результате фокус находится не на этом поле, потому что курсор был фактически занят/неактивен. Таким образом, команда type("so laggy") приводит к отправке ключей в никуда.
Если я поставлю произвольное время, например 30 секунд, для ожидания между командами ожидания и щелчка, сценарии будут «работать», но мне бы хотелось более элегантное решение. Похоже, что способность обнаруживать изменения в указателе мыши несколько отличается от дорожной карты Sikuli.