关心324235 2024-10-29 20:43 采纳率: 100%
浏览 23
已结题

python如何获取CheckBox数组 插件pywinauto

初学者 网上看了一些视频 还是没搞定 !!


dlg_2 = dlg.child_window(title="选择信息分组", control_type="Custom") # 寻找子窗口
dlg_2.draw_outline(colour='red') # 元素画红框 方便观察
dlg_2.print_control_identifiers() # 打印当前页面的布局信息

执行完上面代码   提示信息显示如下
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
"D:\Program Files\Python311\python.exe" D:\py\练习pywinauto00000.py 
Control Identifiers:

Custom - '选择关键词'    (L868, T193, R1568, B754)
['Custom', '选择关键词', '选择关键词Custom', '选择关键词0', '选择关键词1']
child_window(title="选择关键词", control_type="Custom")
   | 
   | Static - '选择关键词'    (L888, T214, R968, B235)
   | ['选择关键词Static', 'Static', '选择关键词2', 'Static0', 'Static1']
   | child_window(title="选择关键词", control_type="Text")
   | 
   | Button - 'Close'    (L1540, T187, R1574, B221)
   | ['Close', 'Button', 'CloseButton', 'Button0', 'Button1']
   | child_window(title="Close", control_type="Button")
   | 
   | Table - ''    (L0, T0, R0, B0)
   | ['', 'Table', '0', '1', 'Table0', 'Table1']
   | 
   | Static - '关键词:'    (L896, T263, R952, B282)
   | ['Static2', '关键词:Static', '关键词:']
   | child_window(title="关键词:", control_type="Text")
   | 
   | Table - ''    (L0, T0, R0, B0)
   | ['2', 'Table2']
   | 
   | CheckBox - '信息分组一组'    (L0, T0, R0, B0)
   | ['信息分组一组', 'CheckBox', '信息分组一组CheckBox', 'CheckBox0', 'CheckBox1']
   | child_window(title="信息分组一组", control_type="CheckBox")
   | 
   | CheckBox - '信息分组二组'    (L0, T0, R0, B0)
   | ['CheckBox2', '信息分组二组', '信息分组二组CheckBox']
   | child_window(title="信息分组二组", control_type="CheckBox")
   | 
   | CheckBox - '信息分组三组'    (L0, T0, R0, B0)
   | ['CheckBox3', '信息分组三组CheckBox', '信息分组三组']
   | child_window(title="信息分组三组", control_type="CheckBox")
   | 
   | CheckBox - '信息分组四组'    (L0, T0, R0, B0)
   | ['信息分组四组CheckBox', 'CheckBox4', '信息分组四组']
   | child_window(title="信息分组四组", control_type="CheckBox")
   | 
   | CheckBox - '信息分组五组'    (L0, T0, R0, B0)
   | ['CheckBox5', '信息分组五组', '信息分组五组CheckBox']
   | child_window(title="信息分组五组", control_type="CheckBox")
   | 
   | Table - ''    (L0, T0, R0, B0)
   | ['Table3', '3']
   | 
   | Table - ''    (L0, T0, R0, B0)
   | ['Table4', '4']
   | 
   | Button - '确定'    (L1450, T702, R1548, B734)
   | ['确定', '确定Button', 'Button2']
   | child_window(title="确定", control_type="Button")

进程已结束,退出代码0
  • 写回答

2条回答 默认 最新

  • 无疆76 2024-10-29 20:44
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据你给出的代码和提示信息,我看到有一个自定义窗口中存在多个复选框(CheckBox),每个复选框都有相应的标题如“信息分组一组”,“信息分组二组”等。你想使用pywinauto来获取这些复选框的状态(是否被选中)。以下是如何使用pywinauto获取复选框状态的一个例子:

    首先,你需要定位到包含复选框的自定义窗口。从你给出的信息来看,这个窗口的标题可能是"选择关键词"。你可以使用child_window方法来定位这个窗口。

    然后,你可以使用同样的方法来定位每个复选框。例如,要获取"信息分组一组"复选框的状态,你可以使用以下代码:

    from pywinauto.application import Application
    
    # 启动你的应用程序
    app = Application().start("你的应用程序的路径")
    
    # 定位到包含复选框的窗口
    dlg = app.child_window(title="选择关键词")
    
    # 获取"信息分组一组"复选框的状态
    checkbox = dlg.child_window(title="信息分组一组", control_type="CheckBox")
    is_checked = checkbox.is_checked()  # 返回True如果复选框被选中,否则返回False
    print("信息分组一组的状态:", is_checked)
    

    你可以按照同样的方式获取其他复选框的状态。如果你想要获取所有复选框的状态,你可以使用一个循环来遍历它们。注意替换"你的应用程序的路径"为你的实际应用程序的路径。此外,确保你的应用程序在运行这段代码时处于活动状态。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月22日
  • 已采纳回答 1月14日
  • 创建了问题 10月29日