PyAutoGui - найти не видит меню правой кнопкой мыши - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть код ниже, который в основном идентифицирует маленький значок Chrome на панели инструментов Windows, щелкните правой кнопкой мыши по нему с помощью pyautogui, а затем он должен найти опцию «Новое окно».Проблема, с которой я сталкиваюсь, заключается в том, что даже если я сделаю снимок экрана после щелчка правой кнопкой мыши, небольшое меню не отобразится, что сделает невозможным найти параметр «Новое окно».

# this part works
chrome_small_icon = r"C:\Users\chrome_small_icon.png"
elem = pyautogui.locateOnScreen(chrome_small_icon)
elem_center = pyautogui.center(elem)
pyautogui.click(elem_center, duration=0.5, button="right")

time.sleep(0.5)
im_after_right_click = pyautogui.screenshot()

# this part finds zero element, reason being, the right-click menu is like a ghost...
chrome_new_window = r"C:\Users\new_window_text.png"
elements = pyautogui.locateAllOnScreen(chrome_new_window)

делаетКто-нибудь есть какие-либо предложения о том, как найти элементы внутри меню, которое появляется, когда мы щелкаем правой кнопкой мыши на элементе?Спасибо

РЕДАКТИРОВАТЬ кажется, что эта проблема возникает, только если я щелкну правой кнопкой мыши на панели инструментов Windows.Это работает, если я щелкну правой кнопкой мыши в других местах экрана.

1 Ответ

0 голосов
/ 24 октября 2018

Вместо того, чтобы пытаться найти текст нового окна, используйте клавиатуру для выбора нового окна.Я только что запустил следующий код на MacOS и смог успешно открыть новое окно Chrome:

import pyautogui
import time

pyautogui.rightClick(pyautogui.center(pyautogui.locateOnScreen('chrome.png'))) 
#chrome.png is an image of the chrome icon
pyautogui.typewrite('new window')
pyautogui.press('enter')
...