# pywinauto.base_wrapper
所有后端中所有包装器的基类
>[success] *class* `pywinauto.base_wrapper.BaseMeta`
Wrapper对象的抽象元类
> *static* `find_wrapper(element)`
抽象静态方法找到合适的包装器
>[success] *class* `pywinauto.base_wrapper.BaseWrapper(element_info, active_backend)`
元素的抽象包装。
所有其他包装都来自于此。
> `can_be_label = False`
> `capture_as_image(rect=None)`
返回控件的PIL图像。
请参阅PIL文档以了解您可以对生成的图像执行的操作。
>`children(**kwargs)`
将此元素的子元素作为列表返回
它返回BaseWrapper(或子类)实例的列表。 如果没有子项,则返回空列表。
> `class_name()`
返回元素的类名
`click_input(button='left', coords=(None, None), button_down=True, button_up=True, double=False, wheel_dist=0, use_log=True, pressed='', absolute=False, key_down=True, key_up=True)`
单击指定的坐标
* **button** 要单击的鼠标按钮。“Left”、“Right”、“Middle”或“X”之一(默认为“Left”,“Move”是特殊情况)
* **coords** 单击的坐标。(默认值:控件的中心)
* **double** 是否执行双击(默认值:False)
* **wheel_dist** 移动鼠标滚轮的距离(默认值:0)
>[info] 注意:
> 这与click方法的不同之处在于它需要控件在屏幕上可见,但执行更逼真的“点击”模拟。
如果用户移动鼠标,此方法也很容易受到影响,因为在click_input完成之前可以轻松地将鼠标从控件上移开。
> `client_to_screen(client_point)`
将点从客户端映射到屏幕坐标
> `control_count()`
返回此控件的子项数
> `control_id()`
返回元素的ID
只有控件具有有效的ID - 对话框通常没有分配ID。
ID通常在窗口中标识控件 - 但是可能存在重复的ID,例如对话框中的标签可能具有重复的ID。
> `descendants(**kwargs)`
以列表的形式返回此元素的后代
它返回BaseWrapper(或子类)实例的列表。 如果没有后代,则返回空列表。
> `double_click_input(button='left', coords=(None, None))`
双击指定的坐标
> `drag_mouse_input(dst=(0, 0), src=None, button='left', pressed='', absolute=True)`
点击**src**,拖动它然后放下**dst**
* **dst** 是一个目标包装器对象或只是坐标。
* **src** 是源包装器对象或坐标。 如果**src**为None,则self用作源对象。
* **button** 是拖动过程中要按住的鼠标按钮。 它可以是“左”,“右”,“中间”或“x”
* **pressed** 是拖动过程中键盘上的键。
* **absolute** 指定是否对鼠标指针位置使用绝对坐标
> `draw_outline(colour='green', thickness=2, fill=<MagicMock name='mock.win32defines.BS_NULL' id='140489677218480'>, rect=None)`
在窗口周围画一个轮廓。
* **colour** 可以是整数,也可以是 ‘red’, ‘green’, ‘blue’ (默认为‘green’)
* **thickness** 矩形厚度(默认2)
* **fill** 如何填充矩形(默认BS_NULL)
* **rect** 要绘制的矩形的坐标(默认为控件的矩形)
> `element_info`
只读属性获取**ElementInfo**对象
> `friendly_class_name()`
返回控件的友好类名
在某些情况下,这与控制类不同。 class_name()是控件的实际“Registered”元素类,而friendly_class_name()希望是对用户更有意义的东西。
例如,Checkbox实现为Buttons - 因此CheckBox的类是“Button” - 但友好的类是“CheckBox”
> `friendlyclassname = None`
> `from_point(x, y)`
在指定的屏幕坐标(x,y)处获取元素的包装对象
> `get_properties()`
将控件的属性作为字典返回。
>`has_title = True`
>`is_child(parent)`
如果此元素是'parent'的子元素,则返回True。
当元素是另一个元素的直接元素时,元素是另一个元素的子元素。 如果父元素是子元素的父元素链,则元素是给定元素的直接后代。
> `is_dialog()`
如果控件是顶级窗口,则返回True
> `is_enabled()`
元素是否启用
检查是否同时启用了拥有此元素的顶级父级(可能是对话框)和元素本身。
如果要等待元素被启用(或等待它被禁用),请使用`Application.wait('visible')`或`Application.wait_not('visible')`。
如果要在未启用元素的情况下立即引发异常,则可以使用BaseWrapper.verify_enabled()。 如果窗口既不可见又启用,则会引发BaseWrapper.VerifyReady()。
> `is_visible()`
元素是否可见
检查拥有此元素的顶级父级(可能是对话框)和元素本身是否都可见。
如果你想等待一个元素变得可见(或等待它被隐藏),请使用`Application.wait('visible')`或`Application.wait_not('visible')`。
如果要在元素不可见时立即引发异常,则可以使用BaseWrapper.verify_visible()。 如果元素既不可见又启用,则引发BaseWrapper.verify_actionable()。
> `iter_children(**kwargs)`
迭代此元素的子级
它返回BaseWrapper(或子类)实例的生成器。
> `iter_descendants(**kwargs)`
迭代此元素的后代
它返回BaseWrapper(或子类)实例的生成器。
> `move_mouse_input(coords=(0, 0), pressed='', absolute=True)`
移动鼠标
> `parent()`
>返回此元素的父元素t
请注意,控件的父级实际上不是对话框或其他主窗口。例如,分组框可能是某些单选按钮的父级。
要获取主(或顶级)窗口,请使用BaseWrapper.top_level_parent()。
> `press_mouse_input(button='left', coords=(None, None), pressed='', absolute=True, key_down=True, key_up=True)`
使用SendInput按下鼠标按钮
> `process_id()`
返回拥有此窗口的进程的ID
> `rectangle()`
返回元素的矩形
rectangle()是屏幕上元素的矩形。坐标从屏幕左上角给出。
此方法返回RECT结构,该结构具有top,left,right,bottom属性。 并且有方法width()和height()。 有关更多信息,请参阅win32structures.RECT。
> `release_mouse_input(button='left', coords=(None, None), pressed='', absolute=True, key_down=True, key_up=True)`
释放鼠标按钮
> `right_click_input(coords=(None, None))`
右键单击指定的坐标
> `root()`
返回根元素包装器(桌面)
> `set_focus()`
将焦点设置为此元素
> `texts()`
返回此控件的每个项目的文本
它是控件的字符串列表。 经常重写它以从具有多个项的控件中提取所有字符串。
它始终是包含一个或多个字符串的列表:
* 第一个元素是控件的窗口文本
* 后续元素包含控件的任何项目的文本(例如,列表框/组合框中的项目,tabcontrol中的选项卡)
> `top_from_point(x, y)`
在指定的屏幕坐标(x,y)处获取顶级元素的包装器对象
> `top_level_parent()`
返回此控件的顶级窗口
TopLevel父级与父级不同,父级是拥有此元素的元素 - 但它可能不是对话框/主窗口。 例如,大多数组合框都有编辑。 ComboBox是Edit控件的父级。
这将始终返回一个有效的窗口元素(如果控件没有顶级父级,则返回控件本身 - 因为它已经是顶级窗口!)
> `type_keys(keys, pause=None, with_spaces=False, with_tabs=False, with_newlines=False, turn_off_numlock=True, set\_foreground=True)`
使用keyboard.send_keys键入元素的键
这使用重写的[Keyboard](pywinauto.keyboard.md)python模块,您可以在其中找到有关**keys**的用途的文档。
> `verify_actionable()`
验证元素是否可见并已启用
如果未分别启用或可见,则提升ElementNotEnalbed或ElementNotVisible。
> `verify_enabled()`
验证该元素是否已启用
首先检查元素的父元素是否已启用(如果没有父元素则跳过),然后检查元素本身是否已启用。
> `verify_visible()`
验证元素是否可见
首先检查元素的父元素是否可见。 (如果没有父项则跳过),然后检查元素本身是否可见。
> `wait_for_idle()`
后端特定函数,用于等待线程或窗口的空闲状态
> `was_maximized()`
在最小化之前指示窗口是否最大化
> `wheel_mouse_input(coords=(None, None), wheel_dist=1, pressed='')`
操作鼠标滚轮
> `window_text()`
元素的窗口文本
相当多的控件具有其他可见的文本,例如,编辑控件通常具有用于窗口文本的空字符串,但仍然在编辑窗口中显示文本。
> `windowclasses = []`
> `writable_props`
构建要写入的默认属性的列表。
派生类可以覆盖或扩展此列表,具体取决于它们需要多少控制。
>[success] *exception* `pywinauto.base_wrapper.ElementNotEnabled`
未启用元素时引发
>[success] *exception* `pywinauto.base_wrapper.ElementNotVisible`
元素不可见时引发
>[success] *exception* `pywinauto.base_wrapper.InvalidElement`
传递无效元素时引发
>[success] `pywinauto.base_wrapper.remove_non_alphanumeric_symbols(s)`
使文本可用于属性名称
- 什么是Pywinauto
- 入门指南
- 如何
- 等待长时间操作
- 远程执行指南
- 每种不同控制类型可用的方法
- 贡献者
- 开发笔记
- 待办项目
- 更新日志
- 基本用户输入模块
- pywinauto.mouse
- pywinauto.keyboard
- 主要用户模块
- pywinauto.application
- pywinauto.findbestmatch
- pywinauto.findwindows
- pywinauto.timings
- 特定功能
- pywinauto.clipboard
- pywinauto.win32_hooks
- 控件参考
- pywinauto.base_wrapper
- pywinauto.controls.hwndwrapper
- pywinauto.controls.menuwrapper
- pywinauto.controls.common_controls
- pywinauto.controls.win32_controls
- pywinauto.controls.uiawrapper
- pywinauto.controls.uia_controls
- Pre-supplied Tests
- pywinauto.tests.allcontrols
- pywinauto.tests.asianhotkey
- pywinauto.tests.comboboxdroppedheight
- pywinauto.tests.comparetoreffont
- pywinauto.tests.leadtrailspaces
- pywinauto.tests.miscvalues
- pywinauto.tests.missalignment
- pywinauto.tests.missingextrastring
- pywinauto.tests.overlapping
- pywinauto.tests.repeatedhotkey
- pywinauto.tests.translation
- pywinauto.tests.truncation
- 后端内部实施模块
- pywinauto.backend
- pywinauto.element_info
- pywinauto.win32_element_info
- pywinauto.uia_element_info
- pywinauto.uia_defines
- 内部模块
- pywinauto.controlproperties
- pywinauto.handleprops
- pywinauto.xml_helpers
- pywinauto.fuzzydict
- pywinauto.actionlogger
- pywinauto.sysinfo
- pywinauto.remote_memory_block