pyautogui GIMP自动化问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyautogui GIMP自动化问题相关的知识,希望对你有一定的参考价值。

我正在用GIMP做一些自动化作为我的测试用例。我需要启动程序并向其发送鼠标/键盘操作。我正在使用subprocess.call()启动程序和pyautogui发送鼠标/键盘动作。

import pyautogui
import subprocess

subprocess.call('gimp', shell=True)    
gimp_file = pyautogui.locateOnScreen('imgs/gimp_file.png', grayscale=True,region=(5, 28, 29, 19))

file_button_x, file_button_y = pyautogui.center(gimp_file)  
pyautogui.click(file_button_x, file_button_y, duration=0.75)

我遇到的问题是pyautogui部分代码从未被命中,程序似乎只是挂起。我在PyCharm中运行调试器并且没有返回任何变量。如果我在python控制台中运行subprocess.call('gimp'),而在其他控制台的代码中运行其余部分,它会做它应该做的事情。我认为可以是由程序启动或窗口焦点引起的时间延迟;我添加time.sleep(5)来解决前一个原因,但没有影响。我怎么解决这个问题?

答案

subprocess.call()将等待进程退出 - 这不会发生(除非你退出GIMP),你也不想等待。你应该使用subprocess.Popen()stdin设置为subprocess.DEVNULLstdout/stderr要么单独留下,要么也重定向到DEVNULL。这将允许您的程序进入pyautogui线,而GIMP正在运行。

请注意,gimp会显示启动画面,因此在尝试查找其窗口并“单击”其中之前,您可能需要等待一段时间。

以上是关于pyautogui GIMP自动化问题的主要内容,如果未能解决你的问题,请参考以下文章

Python键鼠操作自动化库PyAutoGUI简介

在 Tkinter 中使用 Pyautogui 进行自动化时,窗口会调整大小并放错位置

Python键鼠操作自动化库PyAutoGUI简介

Python键鼠操作自动化库PyAutoGUI简介

python selenium框架解决ip代理框不能自动化登录,解决pyautogui开不了多线程问题

pyautogui自动化办公脚本