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)
获得句柄后,获取焦点,点击操作
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到底有什么用,看了官方文档,貌似不太明白,没有解决,问了同事,同事说类似网络的东东
文档如下:
希望知道的大牛解释一下,谢谢啦