【pywinauto】 常用控件方法说明
Pywinauto-0.6.8 controls.uia_controls 控件模块 电脑端软件GUI鼠标键盘Python自动化办公、测试、重复性工作制定库-CSDN博客
控件类别
- Button(按钮):用于触发某个操作或执行某个功能。
- TextBox(文本框):用于输入和展示文本内容。
- Label(标签):用于展示文本内容,通常用于描述其他控件或提供提示信息。
- ComboBox(组合框):提供一个下拉列表,用于选择一个选项。
- ListBox(列表框):展示一个可选择的列表,可以选择一个或多个选项。
- CheckBox(复选框):用于选择或取消选择一个选项。
- RadioButton(单选按钮):用于在一组选项中选择一个选项。
- TreeView(树形视图):展示一个层级结构的数据,可以展开或折叠节点。
- ListView(列表视图):展示一个表格状的数据,可以进行排序和选择。
- Menu(菜单):提供一个选项列表,通常显示在应用程序的顶部。
- Toolbar(工具栏):提供一组常用的功能按钮,通常显示在应用程序的顶部或侧边。
- Dialog(对话框):用于展示特定信息或进行特定操作的窗口,通常需要用户进行交互。
- GroupBox(分组框):将一组相关的控件组织在一个框内,用于提供视觉上的分组和组织。
- Tab(选项卡):提供多个选项卡,每个选项卡可以显示不同的内容。
- ScrollBar(滚动条):用于滚动内容,例如在一个较长的文本框或列表中。
Dialog控件是一个顶级窗口
属性:
window_text
:获取或设置对话框的标题文本。class_name
:获取对话框的类名。control_id
:获取对话框的控件标识符。enabled
:获取或设置对话框是否启用。visible
:获取或设置对话框是否可见。rectangle
:获取对话框的矩形区域坐标。state
:获取对话框的状态,如是否被激活、是否最大化等。parent
:获取对话框的父控件对象。
方法:
wait
:等待对话框出现或消失。close
:关闭对话框。set_focus
:将焦点设置到对话框上。maximize
:最大化对话框。minimize
:最小化对话框。restore
:恢复对话框到原始大小。
MenuItem
属性:
text
:获取或设置菜单项的文本。enabled
:获取或设置菜单项是否启用。checked
:获取或设置菜单项是否被选中。visible
:获取或设置菜单项是否可见。parent
:获取菜单项的父控件对象。
方法:
click
:单击菜单项。select
:选择菜单项。check
:选中菜单项。uncheck
:取消选中菜单项。
区别:
click()
方法会触发菜单项的点击事件并执行关联操作,select()
方法只选择菜单项而不触发点击事件,check()
方法用于选中菜单项并标记为已选中状态。ListBox控件是用于显示列表选项的控件
属性:
count
:获取列表框中的列表项数量。selected_index
:获取或设置当前选中的列表项的索引。selected_text
:获取或设置当前选中的列表项的文本。items
:获取列表框中的所有列表项。enabled
:获取或设置列表框是否启用。visible
:获取或设置列表框是否可见。parent
:获取列表框的父控件对象。
方法:
select
:选择指定索引的列表项。deselect
:取消选择指定索引的列表项。get_item_text
:获取指定索引的列表项的文本。get_item_data
:获取指定索引的列表项的数据。set_item_data
:设置指定索引的列表项的数据。get_selected_items
:获取所有选中的列表项。
from pywinauto.application import Application # 启动或连接到你的应用程序 app = Application().start("your_application.exe") # 或者连接到已运行的实例 # app = Application().connect(path="your_application.exe") # 选择窗口 window = app.window(title='Your Window Title') # 假设ListBox的控件ID是'myListBox' list_box = window.child_window(auto_id="myListBox", control_type="ListBox") # 选择ListBox中的某个项(通过文本) list_box.select('Item Text') # 或者,如果知道索引,可以直接选择(注意索引可能从0开始,也可能从1开始,这取决于控件) list_box.select(index_of_item)
# 或许选定值 selected_items = [item.window_text() for item in list_box.items() if item.is_selected()] if selected_items: print("选定的项是:", selected_items) else: print("没有选定的项")
ListView
控件是一个可以显示多个项目的列表,这些项目可以是一行一行的文本,也可以包含图标、子项等。用户可以滚动查看列表中的所有项目,并且通常可以选择一个或多个项目
ComboBox
控件则是一个结合了文本框和下拉列表的控件。它允许用户从下拉列表中选择一个项目,或者在文本框中输入自定义的文本。当用户点击下拉箭头时,会弹出一个下拉列表供用户选择。
ListItem对象
- click():点击ListItem,模拟用户点击该项目。
- select():选择ListItem,将其设置为选中状态。
- double_click():双击ListItem,模拟用户双击该项目。
- get_properties():获取ListItem的属性,如文本、位置、大小等。
- get_item_text():获取ListItem的文本内容。
- get_item_image():获取ListItem的图像。
- is_checked():检查ListItem是否被选中。
- is_enabled():检查ListItem是否可用。
- is_visible():检查ListItem是否可见。
- set_focus():将焦点设置到ListItem上。
- get_value():获取ListItem的值,通常用于获取列表中的某个字段的值。
控件属性 child.element_info
- class_name: 控件的类名。
- name: 控件的名称(如果可用)。
- control_type: 控件的类型(如 "Button", "Edit", "Window" 等)。
- framework_id: 使用的 UI 自动化框架的标识符(如 "Win32", "WPF" 等)。
- is_visible: 控件是否可见。
- is_enabled: 控件是否启用。
- is_keyboard_focusable: 控件是否可以通过键盘聚焦。
- is_control_element: 控件是否是一个控制元素(而非其他类
Button
属性:
window_text
:获取或设置按钮的文本内容。class_name
:获取按钮的类名。control_id
:获取按钮的控件标识符。enabled
:获取或设置按钮是否启用。visible
:获取或设置按钮是否可见。rectangle
:获取按钮的矩形区域坐标。state
:获取按钮的状态,如是否被选中、是否被禁用等。parent
:获取按钮的父控件对象。
方法:
click
:模拟点击按钮。get_properties
:获取按钮的所有属性。get_value
:获取按钮的值。set_focus
:将焦点设置到按钮上。get_patterns
:获取按钮支持的UI自动化模式。
TreeView(树形视图)
属性
- Nodes:表示
TreeView
控件中的节点集合。 - SelectedItem.Text:用于返回或设置当前选中节点的文本内容。
- ShowCheckBoxes:声明是否显示复选框。
- ShowExpandCollapse:声明是否显示展开/折叠按钮。
- ShowLines:声明节点间是否以线连接。
- ExpandDepth:声明
TreeView
控件展开的深度。 - CheckedNodes:返回被选中的单个或多个节点。
- RootNodeStyle、NodeStyle、LeafNodeStyle、SelectedNodeStyle、HoverNodeStyle:这些属性用于指定不同类型节点的样式。
方法
- item_count():获取树控件中所有显示的节点数量(不包括被折叠隐藏的节点)。
- roots():获取
TreeView
的根元素。
mouse 鼠标模拟
方法
- click(button='left', coords=(0, 0))
- 单击指定的坐标。可以通过
button
参数指定是左键、中键还是右键。
- 单击指定的坐标。可以通过
- double_click(button='left', coords=(0, 0))
- 双击指定的坐标。
- move(coords=(0, 0))
- 将鼠标移动到指定的坐标。
- press(button='left', coords=(0, 0))
- 在指定的坐标处按下鼠标按钮。
- release(button='left', coords=(0, 0))
- 在指定的坐标处释放鼠标按钮。
- right_click(coords=(0, 0))
- 在指定的坐标处右键单击。
- scroll(coords=(0, 0), wheel_dist=1)
- 在指定的坐标处滚动鼠标滚轮。
wheel_dist
参数指定滚动的距离和方向(正数表示向上滚动,负数表示向下滚动)。
- 在指定的坐标处滚动鼠标滚轮。