显然,pyautogui
在使用截图功能时无法识别“真实的”屏幕。
下面的简单代码在大多数情况下都能正常工作,但不是所有情况下都能正常工作。显然,一些弹出式窗口将无法识别(例如,网页,Javascript(?),或一些Windows消息)。
import pyautogui
try:
pyautogui.click('myButtonSomewhereOnTheScreen.png')
print("Button clicked")
except:
print("Error: Button not found")
This issue在几年前就已经被提出了,但是据说它是Pillow的一个限制。这些年来是否有任何改进,或者是否有人知道一个变通方案或不同的方法来包括这样的弹出窗口?
2条答案
按热度按时间e4eetjau1#
通常pyautogui不能检测弹出窗口,正如你提到的,这是Pillow库的一个限制。在以前的版本中,我们可以使用pyautogui.locateonscreen,但这会导致问题,现在只有在程序已经启动时才能工作。
fjnneemd2#
我根据我的特殊情况解决了这个问题。
我可以让弹出窗口一直占据整个窗口,所以当弹出窗口出现时,我知道整个屏幕x到y都是弹出窗口。
因此,发送pyautogui.click(),您将单击弹出窗口,将其置于最前面(或者无论您如何说)
现在,弹出窗口处于焦点位置,您可以使用pyautogui.locateOnScreen()继续您的操作
我希望这能帮助到一些人!这是我第一次能够提供一个关于堆栈溢出的可能答案:)