PyAutoGUI Нажмите на элемент, который может быть на любом мониторе - PullRequest
1 голос
/ 28 марта 2019

У меня есть дополнительный монитор, подключенный к моему ноутбуку много раз (но не всегда), и я недавно заметил, что следующий код:

import pyautogui
change_intense_to_calm = pyautogui.locateOnScreen('Intense.png', confidence = 0.9)
run_script_button_x, run_script_button_y = pyautogui.center(change_intense_to_calm)
pyautogui.click(run_script_button_x, run_script_button_y)

не работает, когда 'Intense.png "элемент появляется на втором мониторе! Он перемещает мышь в положение и щелкает, если он появляется на основном мониторе (экране ноутбука), но если окно, содержащее этот элемент, находится на дополнительном мониторе, происходит сбой, сообщая мне об этой ошибке:

Traceback (most recent call last):
  File "E:\Installation\3_Include\PK2_Scripts\AutoHotkey\foobarFacetsSwitcher\doit.py", line 18, in <module>
    run_script_button_x, run_script_button_y = pyautogui.center(change_intense_to_calm)
  File "C:\Program Files\Python\Python37\lib\site-packages\pyscreeze\__init__.py", line 407, in center
    return (coords[0] + int(coords[2] / 2), coords[1] + int(coords[3] / 2))
TypeError: 'NoneType' object is not subscriptable

предположительно, потому что он не находит его.

Как я могу изменить свой код, чтобы он нашел элемент и щелкнул по нему независимо от того, на каком мониторе находится окно, в котором он находится,Для справки я на Windows 10 64bit build 14393.

...