可以将 locateCenterOnScreen 坐标传递给 X Y 参数以截取 Python 的区域吗?

can locateCenterOnScreen coordinates be passed to the X Y parameter to screenshot a region with Python?

python 的新手(在过去几个月内),我很享受。它易于理解和使用。除了这种情况!

我编写了一个脚本,用于使用 selenium 登录站点、导航到特定页面、输入日期值并显示我需要的结果。它滚动到位,然后我只需要截取该页面的一部分。起初我只是让它保存整个屏幕,稍后我会裁剪它,但我相信只截取我需要的区域是可能的(而且效率更高)。

我尝试了多种方法来定位拐角的起点并选择区域,最终决定使用 locateCenterOnScreen 来使用 pyautogui,这是我想要的位置的示例屏幕截图,其中中心标记左上角我要保存的整个部分的一角。这样可以保证如果window每次不在同一个地方,不管在什么地方都会准确保存正确的区域。

因此,使用

location = pyautogui.locateCenterOnScreen('ctr_cornerScreenshot.PNG')

returns 正确的 (X, Y) 值以正确定位屏幕截图的坐标。然后,我正在使用

screengrabPic = pyautogui.screenshot(region=(location, 720, 340)) screengrabPic.save("transactions.png")

错误结果为

AssertionError: region argument must be a tuple of four ints

我确定是因为 location 传入的区域参数,我试过 (int(location)'locationX, locationY,

我想我应该寻求帮助而不是让我的轮子旋转太多。谢谢!

好的,所以我做了更多的试验和错误,然后找到了最终的解决方案。

location = pyautogui.locateCenterOnScreen('ctr_cornerScreenshot.PNG')
print(location)
locationX, locationY = pyautogui.locateCenterOnScreen('ctr_cornerScreenshot.PNG')
screengrabPic = pyautogui.screenshot(region=(locationX, locationY, 720, 340))
screengrabPic.save("tolls_" + filename + ".png")

在 pyautogui.readthedocs 它解释了这种语法,但没有具体说明要求是先 运行 定位中心一次,然后再定位 locationX 和 locationY。