Почему pyautogui не может найти элементы в OSX Dock?

Я начал изучать pyautogui для своего личного проекта и почти сразу же столкнулся с проблемами при попытке открыть значки дока OSX.

Я хочу открыть локальный Spotify, который находится под Mac Launchpad.

Мой код для этого.

import pyautogui

launchpad = pyautogui.locateOnScreen('img/Launchpad.png')

Это возвращает None, поэтому изображение не найдено.

пример изображения прилагается

введите здесь описание изображения

Однако, если я открою окно Mac OSX Notes, вставлю в него то же изображение и снова запущу программу, изображение будет найдено каждый раз. Точно так же, если я просто оставлю изображение открытым в моем редакторе.

Является ли док частью экрана OSX, на котором pyautogui может выполнять поиск? Если нет, то как с ним взаимодействовать?


person Kimmo Hintikka    schedule 02.04.2018    source источник


Ответы (1)


Выяснилось, что использование горячих клавиш приложения вместо поиска на экране является гораздо менее хрупким подходом. Ниже показано, как я, наконец, создаю бота Spotify.

import time

import pyautogui

# use pyauutogui key shortcut to open OSX spotlight search
pyautogui.hotkey('command', 'space')
# type spotify and press enter to open application
pyautogui.typewrite('Spotify')
pyautogui.hotkey('enter')
# use Spotify keyboard shortcuts to select search.
# key docs here: https://support.spotify.com/ie/article/Keyboard-shortcuts/
time.sleep(5)
pyautogui.hotkey('command', 'l')
# typewrite allows passing string arguments using keyboard
pyautogui.typewrite('concentration music')
# move to select the song with tab and press enter to play
pyautogui.hotkey('tab', 'tab', 'tab', 'tab')
time.sleep(2)
pyautogui.hotkey('enter')
pyautogui.hotkey('space')
# sleeps 30 seconds while music is playing
time.sleep(30)
pyautogui.hotkey('command', 'q')
person Kimmo Hintikka    schedule 02.04.2018