• 使用 pywinauto 模拟鼠标键盘操作


    官方文档

    比较好的教程    要快速上手可以看下面的例程


    例程:

    这个可以用来检验模块是否安装好了

    from pywinauto.application import Application
    '''启动App,如 记事本'''
    app = Application(backend="uia").start("notepad.exe")
    
    '''选定窗口'''
    edit_window = app['无标题']
    '''打印窗口控件信息'''
    edit_window.dump_tree() # 根据打印出的窗口树关系操作控件,可以用一个文本文档保存该dump_tree,方便之后使用

    这里我直接将控件信息保存在新打开的notepad中,命名为1.txt    比如 下图中这段就是 文件(F) 按钮和 编辑(E) 按钮对应的控件信息

                

    模拟鼠标点击:

    from pywinauto.application import Application
    
    try:   
        '''对于已经启动的窗口,可以直接连接'''
        app = Application(backend="uia").connect(title_re="abc.txt - 记事本") #如果有两个相同标题的窗口,匹配就会有问题
        '''选定窗口'''
        note_window = app['abc.txt - 记事本']  
        '''点击 编辑——>查找'''
        note_window.menu_select("编辑->查找(F)")  # control_type为MenuBar类的控件可以调用该方法
        '''点击 滚动条'''
        ScrollBar = note_window.child_window(title="文本编辑器").child_window(auto_id="NonClientVerticalScrollBar") #子窗口可以用title或auto_id确定
        for _ in range(10):        
            ScrollBar.child_window(title="下一行").click() # Button类的控件可以点击
        
    except BaseException as e:
        print('abc.txt未打开或者没有关闭重开
    ', e)

      注意:选定窗口这一步是必要的,而且窗口被控制一次后需要关闭重开(原因的话试试就知道了~。~)

         其他类型(control_type)的控件也有自己的操作方法,比如 下拉框 可以用 click_input() 点开,再 click() 选中其中的项

                                    (click_input是真正移动光标,click只是发送窗口消息)

         可用于每种不同类型控件的方法

         读取窗口中的字符可以用 child_window().legacy_properties()['Value'] 

         dump_tree() 方法在任意子窗口都可以调用,建议找控件信息时在对应 child_window() 处使用


    获取控件信息除了 dump_tree() 也可以用软件

      资源链接:https://github.com/blackrosezy/gui-inspect-tool

      如果是win32模式连接窗口的话,建议用UISpy,mode设置为Hovering

      只要鼠标移到控件对应位置上,按一下Ctrl就可以定位到控件,在Properties栏看到控件的win32模式下信息

      但是,使用这个软件时不能对软件自身窗口的控件定位(会卡死),也不能点Edit——>Setting(有bug)


    模拟键盘

      参考博客

    from pywinauto.keyboard import send_keys
    
    send_keys('{ENTER}')

       

  • 相关阅读:
    Linux随笔 DNS搭建
    总算亲自看见了一个网站被黑后的页面。
    [转]XP如何禁止媒体文件预览
    用Word2007发Blog的配置方法(多图)。
    C#通过http访问olap
    测试Word2007
    用IronPython作为.Net的脚本语言。
    用批处理写的显示磁盘剩余空间的小程序。
    事开机时Num Lock键打开。
    快捷方便的对js文件进行语法检查。
  • 原文地址:https://www.cnblogs.com/Pio-GD/p/14332137.html
Copyright © 2020-2023  润新知