Иногда при автоматизации через SikuliX важно понимать, с каким именно монитором мы работаем. Например, если у вас несколько экранов, нужно задать координаты для поиска элементов или запускать сценарий на конкретном дисплее.
К счастью, в SikuliX это делается очень просто: библиотека умеет определять количество подключённых мониторов и получать их параметры.
Пример скрипта, который получает все мониторы, перебирает их в цикле и выводит информацию о разрешении каждого.
1 2 3 4 5 6 |
num = Screen.getNumberScreens() print("Всего мониторов", num) screens = [Screen(i) for i in range(num)] for i, s in enumerate(screens): print("Монитор", i, " имеет разрешение ", s.getBounds()) |
Что здесь происходит:
Screen.getNumberScreens()
— возвращает количество доступных экранов.[Screen(i) for i in range(num)]
— создаёт список объектовScreen
, каждый из которых соответствует монитору.getBounds()
— даёт прямоугольную область (границы), в которой указывается разрешение экрана и его координаты в виртуальном пространстве рабочего стола.
Практическое применение
1 2 |
screen1 = Screen(1) screen1.click("button.png") |
Это гарантирует, что действие произойдёт именно на втором мониторе (нумеруются с нуля).
Адаптивные сценарии
Если скрипт должен работать на разных рабочих местах, можно проверять разрешение экранов и подстраивать координаты или масштаб поиска.
Отладка
При возникновении ошибок полезно вывести список всех доступных экранов и их параметры, чтобы убедиться, что SikuliX «видит» правильное окружение.