# 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