我试图让 pyautogui 的 locateOnScreen 在虚拟机上工作,这样我就可以一次运行多个测试。我希望虚拟框中有一些我缺少的设置可以解决这个问题。这是代码:
import pyautogui
import win32com.client
autoit = win32com.client.Dispatch("AutoItX3.Control")
autoit.run(application_path)
open_application = autoit.winWait("title_of_app", "", 10)
header_logo = pyautogui.locateOnScreen("header_logo.png", 10)
if open_application == 1 and header_logo is not None:
print "Detected application window."
else:
if open_application == 0:
print "Failed to detect application window."
assert open_application
else:
print "Failed to detect logo in header of application window."
assert header_logo
在虚拟机之外,这通过了,在里面我总是遇到“无法在应用程序窗口的标题中检测到徽标”。我已经尝试了很多调整图像,但什么都不会。主桌面是 Windows 7 64 位,VM 是 Window 7 32 位。有没有办法让它在 VirtualBox 或任何 VM 软件上运行?
编辑:我应该补充一点,AutoIt 的 winWait 返回 1 或 0,PyAutoGUI 的 locateOnScreen 返回 None 或图像在屏幕上的坐标以及所用图像的大小。