Работают ли коды, зависящие от положения курсора, на виртуальной машине

#virtual-machine #pyautogui

Вопрос:

Я понятия не имею, как работают виртуальные машины, будет ли код pyautogui, который перемещает мышь на определенный пиксель на экране, по-прежнему работать с виртуальной машиной? Я хочу, чтобы мой код, который нажимает на моем экране, чтобы присоединиться к Google meet, мог работать без моего компьютера.

Ответ №1:

Ответ на вопрос, сработает это или нет, — нетривиальный вопрос.

Ниже приведены некоторые из ошибок, с которыми мне пришлось столкнуться, когда я запускал тесты pyautogui против тестовой виртуальной машины.

Если ваша виртуальная машина не отображает пользовательский интерфейс, pyautogui не будет работать правильно. Как правило, для экономии ресурсов виртуальная машина будет отображать пользовательский интерфейс только тогда, когда ему необходимо отобразить пользовательский интерфейс.

Если ваши тесты были разработаны в системе с разрешением, отличным от разрешения виртуальной машины, может возникнуть целый ряд ошибок. Изменения разрешения могут привести к тому, что целевые изображения перестанут быть допустимыми из-за масштабирования пользовательского интерфейса и изменений в макете. Любые жестко закодированные позиции или вычисленные смещения пикселей также могут быть нарушены при изменении разрешения. Рекомендуется разрабатывать код в среде, максимально приближенной к той, в которой он будет выполняться.

Я бы счел pyautogui решением для автоматизации в крайнем случае. Если вы исчерпали другие варианты автоматизации, то лучший способ узнать, сработает ли она, — начать с малого, проверив концепцию в соответствии с вашей средой. Затем медленно расширяйте возможности автоматизации по мере того, как вы будете разбираться во многих причудах, связанных с парадигмой тестирования ИТ.