Bootstrap

Mac上使用Pyautogui的一些注意事项

1、Mac 的坐标原点

Mac 坐标原点是以左下角为坐标原点的(0,0),Pyautogui 是以左上角为坐标原点的;

在 Mac 屏幕上选取的指定坐标点,要让 Pyautogui 移动到此坐标,需要先将坐标转换为以左上角为坐标原点的坐标:

# 获取屏幕尺寸
screen_width, screen_height = pyautogui.size()

def convert_coordinates(x, y):
    """
    左下角为原点,定位的坐标,转换为左上角为原点,定位的坐标
    X不变
    :param x:
    :param y:
    :return:
    """
    new_x = x
    new_y = screen_height - y
    return new_x, new_y

2、在 Mac 上使用 Pyautogui 定位的图片坐标

在 Mac 上使用 Pyautogui 定位的图片坐标,要对坐标除以 2(苹果电脑retina屏幕,非点对点关系。)

pyautogui.click(x/2, y/2)

📢 Tips:注意此时的坐标是 Pyautogui 要移动的坐标(以左上角为坐标原点);如果要和在 Mac 屏幕下的坐标进行比较或者观察,需要将此坐标,转换为 Mac 的坐标(以左下角为坐标原点)转换公式如上(左上角或者左下角为原点的坐标转换是一样的)。

3、在 Mac 上的截图(比对图片)

📢 Tips:直接使用微信或者企业微信等自带的截图工具,截图需要另存为;如果是直接 Copy 的,会发现图片出现模糊等情况,导致 Pyautogui 定位不到图片(不一定是绝对有问题,只是有可能)。如果出现了图片定位不了,可以使用图片另存为,这种方式,进行重试下。

4、使用 Region 区域识别

📢 Tips:如果要使用 region 参数指定区域进行定位,会发现,Mac 屏幕中显示的坐标和传入的参数相差倍数关系;

5、Mac 中的键

📢 Tips:注意 mac 中使用的键和 windows 使用的键不一样,比如 command+c 与 ctrl+c。

;