在第二台 MacBook Pro 桌面上执行 PyAutoGUI 代码
Execute PyAutoGUI code on second MacBook Pro desktop
我有下面的代码,匹配华尔街日报头版“Tech”header/button的截图,然后点击它-
import pyautogui as pya
import time
# timing start
start = time.time()
# center of screen
pya.moveTo(840, 525, 1)
# navigate to "Tech" button
p = pya.locateOnScreen('wsj-tech.png', confidence = 0.8, grayscale=False)
print(p)
x, y = pya.center(p)
x, y = x/2, y/2
d = pya.moveTo(x, y, 1)
pya.doubleClick(d)
# end timer
end = time.time()
print(end - start)
要执行代码,我必须在浏览器上方(下方也可以)设置 IDE (spyder):
有什么方法可以将浏览器留在另一个桌面上吗?例如。在 spyder 中执行脚本(在“桌面 2”上),然后滑动到“桌面 1”以查看 WSJ 页面上的自动点击器工作?
仅供参考,计算机未连接到任何外部桌面。
好问题!不幸的是,不可能 用 pyautogui
做你要求的事情。这是因为 pyautogui
只能在前台工作 objects/windows 而不能在后台或其他工作空间中最小化 objects/windows。这是一个著名的 feature request,谁知道它是否或何时可以实施。
可能的解决方案:
如果不需要 GUI,只需使用 python
库 selenium 找到 WSJ 横幅并用 headless 单击它 chrome 浏览器实例(浏览器将被隐藏)
将您的代码和浏览器运行放在虚拟机中,这样它就可以执行而不必在前台
尝试 python
库 atomacos,它提供 macOS
GUI 应用程序的自动化
使用 macOS
自动化工具,例如 Hammerspoon,它允许您移动 windows、与其他应用程序对话等
我有下面的代码,匹配华尔街日报头版“Tech”header/button的截图,然后点击它-
import pyautogui as pya
import time
# timing start
start = time.time()
# center of screen
pya.moveTo(840, 525, 1)
# navigate to "Tech" button
p = pya.locateOnScreen('wsj-tech.png', confidence = 0.8, grayscale=False)
print(p)
x, y = pya.center(p)
x, y = x/2, y/2
d = pya.moveTo(x, y, 1)
pya.doubleClick(d)
# end timer
end = time.time()
print(end - start)
要执行代码,我必须在浏览器上方(下方也可以)设置 IDE (spyder):
有什么方法可以将浏览器留在另一个桌面上吗?例如。在 spyder 中执行脚本(在“桌面 2”上),然后滑动到“桌面 1”以查看 WSJ 页面上的自动点击器工作?
仅供参考,计算机未连接到任何外部桌面。
好问题!不幸的是,不可能 用 pyautogui
做你要求的事情。这是因为 pyautogui
只能在前台工作 objects/windows 而不能在后台或其他工作空间中最小化 objects/windows。这是一个著名的 feature request,谁知道它是否或何时可以实施。
可能的解决方案:
如果不需要 GUI,只需使用
python
库 selenium 找到 WSJ 横幅并用 headless 单击它 chrome 浏览器实例(浏览器将被隐藏)将您的代码和浏览器运行放在虚拟机中,这样它就可以执行而不必在前台
尝试
python
库 atomacos,它提供macOS
GUI 应用程序的自动化使用
macOS
自动化工具,例如 Hammerspoon,它允许您移动 windows、与其他应用程序对话等