精华内容
下载资源
问答
  • python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口坐标和大小(长宽),但出现”Command not found”的情况。set_window_rect()函数也一样。 def get_window_rect(self): """ Gets ...
  • python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口坐标和大小(长宽),但出现”Command not found”的情况。set_window_rect()函数也一样。 def get_window_rect(self): "&...

    1.0 获取浏览器窗口坐标
    python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口的坐标和大小(长宽),但出现”Command not found”的情况。set_window_rect()函数也一样。

    def get_window_rect(self):
        """
        Gets the x, y coordinates of the window as well as height and width of
        the current window.
    
        :Usage:
            driver.get_window_rect()
        """
        return self.execute(Command.GET_WINDOW_RECT)['value']
    
    def set_window_rect(self, x=None, y=None, width=None, height=None):
        """
        Sets the x, y coordinates of the window as well as height and width of
        the current window.
    
        :Usage:
            driver.set_window_rect(x=10, y=10)
            driver.set_window_rect(width=100, height=200)
            driver.set_window_rect(x=10, y=10, width=100, height=200)
        """
        if (x is None and y is None) and (height is None and width is None):
            raise InvalidArgumentException("x and y or height and width need values")
    
        return self.execute(Command.SET_WINDOW_RECT, 
            {"x": x, "y": y, "width": width, "height": height})['value']

    然而Webdriver.py文件还定义了get_window_position()函数和get_window_size()函数,可以用这两个函数来分别获取窗口的坐标和大小,而不需要用到win32gui的方法。

     def get_window_size(self, windowHandle='current'):
            """
            Gets the width and height of the current window.
    
            :Usage:
                driver.get_window_size()
            """
            command = Command.GET_WINDOW_SIZE
            if self.w3c:
                if windowHandle != 'current':
                    warnings.warn("Only 'current' window is supported for W3C compatibile browsers.")
                size = self.get_window_rect()
            else:
                size = self.execute(command, {'windowHandle': windowHandle})
    
            if size.get('value', None) is not None:
                size = size['value']
    
            return {k: size[k] for k in ('width', 'height')}
    def get_window_position(self, windowHandle='current'):
            """
            Gets the x,y position of the current window.
    
            :Usage:
                driver.get_window_position()
            """
            if self.w3c:
                if windowHandle != 'current':
                    warnings.warn("Only 'current' window is supported for W3C compatibile browsers.")
                position = self.get_window_rect()
            else:
                position = self.execute(Command.GET_WINDOW_POSITION,
                                        {'windowHandle': windowHandle})['value']
    
            return {k: position[k] for k in ('x', 'y')}

    2.0 获取窗口句柄

    handle = driver.current_window_handle #获取当前窗口句柄
    handles = driver.window_handles  #获取所有窗口句柄

    切换句柄可以使用

    dr.switch_to.window(handle)  #其中handle为获取到的窗口句柄

    假设handles为获取到的所有窗口,则handles为一个list,可使用访问list的方法读取句柄。

    dr.switch_to.windows(handles[0])   #切换到第一个窗口的句柄
    dr.switch_to.windows(handles[-1])   #切换到最新窗口的句柄
    展开全文
  • import win32gui import win32ui import win32con import win32api import time def findTitle(window_title)... # 函数功能:该函数枚举所有屏幕上的顶层窗口,办法是先将句柄传给每一个窗口,然后再传送给应用程序...

     

    import win32gui
    import win32ui
    import win32con
    import win32api
    import time
    def findTitle(window_title):
        '''
        查找指定标题窗口句柄
        @param window_title: 标题名
        @return: 窗口句柄
        '''
        hWndList = []
        # 函数功能:该函数枚举所有屏幕上的顶层窗口,办法是先将句柄传给每一个窗口,然后再传送给应用程序定义的回调函数。
        win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWndList)
        for hwnd in hWndList:
            # 函数功能:该函数获得指定窗口所属的类的类名。
            # clsname = win32gui.GetClassName(hwnd)
            # 函数功能:该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内
            title = win32gui.GetWindowText(hwnd)
            if (title == window_title):
                print("标题:", title, "句柄:", hwnd)
                break
        return hwnd
    
    window_title =  u'笑傲江湖[19:00正式开区]'
    hwnd = findTitle(window_title)
    print(hwnd)
    
    while True:
        #   GetCursorPos 获取鼠标指针的当前位置
        p = win32api.GetCursorPos()
        print(p[0],p[1])
        #  GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 
        x,y,w,h = win32gui.GetWindowRect(hwnd)
        # 鼠标坐标减去指定窗口坐标为鼠标在窗口中的坐标值
        pos_x = p[0] - x
        pos_y = p[1] - y
        print(pos_x,pos_y)
        time.sleep(0.5)
    
    
    

     

    展开全文
  • python获取梦幻西游鼠标偏移坐标

    千次阅读 热门讨论 2019-10-31 16:45:58
    一、依赖库opencv-python和aircv 自行百度怎么安装,连接是aircv官网 https://pypi.org/project/aircv/ 后面链接是关于aircv如何使用https://github.com/NetEaseGame/aircv 二、解决思路 使用ImageGrab抓取梦幻...

    说明:该帖子是为了解决梦幻西游鼠标偏移问题

    一、依赖库opencv-python和aircv

    自行百度怎么安装,连接是aircv官网       https://pypi.org/project/aircv/

    后面链接是关于aircv如何使用 https://github.com/NetEaseGame/aircv

    二、解决思路

    使用ImageGrab抓取梦幻窗口游戏图片,对比本地保存的鼠标图

     

    相似度设置0.8以上,程序运行之后返回坐标。

    # - when found
    @return {'point': (203, 245), 'rectangle': [(160, 24), (161, 66), (270, 66), (269, 24)], 'confidence': 0.09}
    # point: 查找到的点
    # rectangle: 目标图像周围四个点的坐标
    # confidence: 查找图片匹配成功的特征点 除以 总的特征点

    三、代码

    我把抓取的图片存在桌面命名为youxi.png,对比图片命名为shubiao.png

    import aircv as ac
    
    
    def matchImg(imgsrc, imgobj, confidencevalue=0.5):  # imgsrc=原始图像,imgobj=待查找的图片
        imsrc = ac.imread('C:\\Users\\Administrator\\Desktop\\youxi.png')
        imobj = ac.imread('C:\\Users\\Administrator\\Desktop\\shubiao.png')
        match_result = ac.find_template(imsrc, imobj,
                                        0.8)  # {'confidence': 0.5435812473297119, 'rectangle': ((394, 384), (394, 416), (450, 384), (450, 416)), 'result': (422.0, 400.0)}
        if match_result is not None:
            match_result['shape'] = (imsrc.shape[1], imsrc.shape[0])  # 0为高,1为宽
            print(match_result)
    
        return match_result
    
    if __name__ == '__main__':
        matchImg(0,0)

    运行结果:

    {'result': (319.5, 285.0), 'rectangle': ((306, 272), (306, 298), (333, 272), (333, 298)), 'confidence': 0.9638850688934326, 'shape': (806, 628)}

    结果分析:直接拿到rectangle的第一个值就行,shape的值就是窗口大小。

    展开全文
  • 一、创建getWindowName.py ...获取窗口句柄 比如我想获取护眼宝的窗口,只需要填入护眼 只需要修改a的值就行 ''' class getWindowName: def getwindow(a): titles = set() def foo(hwnd,mouse): if...

    一、创建getWindowName.py

    from win32gui import *
    '''
    获取窗口句柄
    比如我想获取护眼宝的窗口,只需要填入护眼
    只需要修改a的值就行
    
    '''
    class getWindowName:
        def getwindow(a):
            titles = set()
            def foo(hwnd,mouse):
             if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
              titles.add(GetWindowText(hwnd))
            EnumWindows(foo, 0)
            lt = [t for t in titles if t]
            lt.sort()
            a="护眼"
            for t in lt:
                if(a in t):
                    print (t)
                    return t
    
        if __name__ == '__main__':
            getwindow(0)

    二、新建main.py

    import win32api
    import win32gui
    from getWindowName import getWindowName
    def resolution():  # 获取屏幕分辨率
        return win32api.GetSystemMetrics(0), win32api.GetSystemMetrics(1)
    
    # 调用getWindowName类获取护眼宝窗口信息赋值给wname,返回一个矩形窗口四个坐标
    def get_window_info():
        wname=getWindowName.getwindow(0)
        handle = win32gui.FindWindow(0, wname)  # 获取窗口句柄
        if handle == 0:
             print('end', '提示:请打开护眼宝\n')
            #return None
        else:
            return win32gui.GetWindowRect(handle)
    # 启动
    if __name__ == "__main__":
        screen_resolution =resolution()
        window_size = get_window_info()
        print(window_size)
    

    三、启动

    直接运行main.py就会打印以下内容:

    护眼宝工具窗
    (1354, 192, 1554, 269)

    展开全文
  • Python点击鼠标获取坐标(Graphics)

    万次阅读 2017-09-30 14:54:29
    使用Python进行图像编程,要使用到Graphics库。下面列举出较常用的代码 from graphics import * #设置画布窗口名和尺寸 win = GraphWin('hehe', 666, 666) #关闭画布窗口 win.getMouse() win....
  • python win32 窗口和鼠标操作

    万次阅读 2018-07-23 23:23:00
    用win32api, win32gui 获取窗口句柄,获取鼠标坐标,点击动作 import win32gui, win32api, win32con # 获取鼠标当前位置的坐标 win32api.GetCursorPos() # 将鼠标移动到坐标处 win32api.SetCursorPos((200, 200))...
  • 利用Python自带的win32api和win32con、win32gui等模块,我们能执行许多windows下的自动化操作。... 今天Python实用宝典就来...1.获取窗口左上角及右下角坐标 import win32api, win32con, win32gui def get_
  • UI自动化获取、设置浏览器坐标 #练习:获取浏览器的坐标、设置浏览器的坐标, #即设置当前浏览器在屏幕上的位置 #语法:1、获取:get_window_position() #2、设置:set_window_position() """ **unittest框架执行...
  • python windows 指定窗口截图

    千次阅读 2020-09-01 14:37:38
    def get_window_pos(name): name = name ... # 获取窗口句柄 if handle == 0: return None else: # 返回坐标值和handle return win32gui.GetWindowRect(handle), handle def fetch_image(): (x1, y1
  • 给一段框出桌面上任意图标的代码练习——实际上是结合win32的python开源库uiautomation获取桌面上任意图标/窗口坐标后,利用tkinter在图标上建立一个半透明带边框的窗口。 from tkinter import Tk, Canvas ...
  • 关于python使用camelot.plot绘制图表后使用plt.show无法在显示图片中自动获取悬停鼠标坐标的问题问题描述使用环境使用的代码具体问题解决办法:修改两处 参考文章: 素馨星 - 提取PDF表格数据 小白tree - 解决新版...
  • 获取句柄:(ParentName为对应窗口的完整名称(字符串),实在确定不了可以用按键抓抓的句柄抓取获得) parent = win32gui.FindWindow(0,ParentName) 获取子句柄:(ChildClass为子句柄的类名(字符串)) child= ...
  • Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量、接口、线程以及COM机制等等。 1.通过类名和标题查找窗口句柄,并获得窗口...#获取窗口左上角和右下角坐标 left, top, right, b
  • 前不久入了个乐视的体感摄像头来玩玩,在网上看了一些资料都是cpp的,出于个人习惯就改写成了python程序,可以同时获取深度值和rgb图像,在depth窗口中双击鼠标左键获取对应坐标的深度值。 系统为Ubuntu1804 首先...
  • 获取网页某个元素坐标的方法

    千次阅读 2019-10-24 15:07:46
    python的selenium写爬虫通过绝对坐标点击,坐标获取方法(谷歌浏览器): 网页F12打开源代码,在console窗口输入 document.querySelectorAll('css选择器')[0].getBoundingClientRect().left + document....
  • 这篇主要讲述如何用python获取森林冰火人窗口部分界面 在获取部分界面的图片之后通过图片识别/分类来判断当前游戏所属的状态 前篇:深度强化学习制作森林冰火人游戏AI(三)向游戏输出键盘控制信息 森林冰火人游戏...
  • 定义鼠标事件,用于获取鼠标点击信息 还有其他的触发,例如移动,双击,还可以设置按下去的时候还是弹起来的时候。 cv.setMouseCallback(windowname, on...关闭图片窗口 cv.destroyAllWindows() def SetPoint.
  • import cv2clicked = False #鼠标是否被按下def onMouse(event,x,y,...x,y:鼠标指针在图像坐标系的坐标(不是窗口坐标系) flags:鼠标回调的标志参数 param:param是用户定义的传递到setMouseCallback函数调用的参数 '
  • 大漠插件python封装

    2017-01-23 20:48:24
    Hwindow 获取顶层活动窗口 MoveWindow 移动窗口 ActiveWindow 激活窗口 MaxWindow 最大化窗口 SetWindowSize 设置窗口大小 FindPic 查找图片,可为多个,但只能得到第一个的位置 FindPicEx 查找图片,可为多个,能...
  • python测试

    2018-08-25 15:59:28
    #显示文字及坐标 texr=tex.get_rect() texr.center=(10,250) #初始化方向 dire = "right" #设置循环 while 1: #绘制文字 screen.blit(tex,texr) screen.fill((0,0,0)) screen.blit(img,(imgx,imgy)) ...
  • FindWindowEx 查找子窗口 Hwindow 获取顶层活动窗口 MoveWindow 移动窗口 ActiveWindow 激活窗口 M axWindow 最大化窗口 SetWindowSize 设置窗口大小 FindPic 查找图片,可为多个,但只能得到第一个的位置 FindPicEx...
  • PYTHON大漠插件封装.zip

    2019-12-15 14:57:05
    Hwindow 获取顶层活动窗口 MoveWindow 移动窗口 ActiveWindow 激活窗口 MaxWindow 最大化窗口 SetWindowSize 设置窗口大小 FindPic 查找图片,可为多个,但只能得到第一个的位置 FindPicEx 查找图片,可为多...
  • 计算元素的坐标

    2021-02-07 11:02:44
    python的selenium写爬虫通过绝对坐标点击,坐标获取方法(谷歌浏览器): 网页F12打开源代码,在console窗口输入 document.querySelectorAll(‘css选择器’)[0].getBoundingClientRect().left + document....

空空如也

空空如也

1 2 3 4 5
收藏数 88
精华内容 35
关键字:

python获取窗口坐标

python 订阅