python pywin32库 点击操作,用介个在地图画区域

本人小白,欢迎各位大大指错,接触这个库,是因为用selenium 无法定位到地图中的元素,我要在地图中画区域,完成测试任务,所以我就百度了各种,,,

1、首先是安装环境 win10 python3.6 (打算升级到3.7)这个还是有点坑的,这个记得pycharm 要重启,否则import 会有莫名其妙的问题

pywin32下载 url :https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/

winSpy17++ :链接:http://pan.baidu.com/s/1cApoXC 密码:bwi5

刚开始尝试貌似没尝到什么甜头,一脸懵逼

查找句柄 classname titlename 还要强调一点,就是如果获取到句柄返回结果不会小于1

if __name__ == "__main__":
    # 查找句柄
    hwnd = win32gui.FindWindow("MozillaWindowClass", "杭州智链达建筑工人服务平台 - Mozilla FireFox")
    if int(hwnd) <= 0:
        print("没有找到,退出进程................")
        exit(0)
    print("查询到: %s " % hwnd)
python pywin32库 点击操作,用介个在地图画区域

获得句柄后,获取焦点,点击操作

click_position(hwnd, 1900, 88)

def click_position(hwd, x_position, y_position):
    """
    鼠标左键点击指定坐标
    :param hwd:
    :param x_position:
    :param y_position:
    :return:
    """
    # 将两个16位的值连接成一个32位的地址坐标
    long_position = win32api.MAKELONG(x_position, y_position)
    # win32api.SendMessage(hwnd, win32con.MOUSEEVENTF_LEFTDOWN, win32con.MOUSEEVENTF_LEFTUP, long_position)
    # 点击左键
    win32api.SendMessage(hwd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, long_position)
    win32api.SendMessage(hwd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, long_position)

焦点如何获取呢?qq截图就很好用,记得从左上角到右下角这么进行看(这个是偶然发现),也可以根据比例进行算


这代码运行成功后,应该会点击浏览器的菜单栏


这样就可以更改焦点,想点当前句柄的哪里就点哪里,什么区域,定位不到元素,都去屎吧


目前还有一个问题没整明白,就是0,0,0,0到底有什么用,看了官方文档,貌似不太明白,没有解决,问了同事,同事说类似网络的东东


文档如下:

python pywin32库 点击操作,用介个在地图画区域

希望知道的大牛解释一下,谢谢啦