Changelog#
The format is based on Keep a Changelog.
[1.5.3] - 2026-07-06#
Changed#
WidgetRef.input(force_input=True)now wraps the directset_value()inmodel.begin_edit()/model.end_edit()so models that only commit on edit end (e.g. rename fields) apply the forced value.
[1.5.2] - 2026-06-12#
Changed#
select_context_menu()retries the item lookup, soshow_fn_async-populated items are no longer missed.
[1.5.1] - 2026-06-08#
Changed#
Accessing a stale
WidgetRef/WindowRefproperty (widget,model,position,size,center) no longer raisesStaleWidgetError. It now logs a big multi-line warning and returns the now-detached widget so a stale access does not abort the test.StaleWidgetErroris retained for backward compatibility but is no longer raised.
[1.5.0] - 2026-05-27#
Added#
StaleWidgetErrorandWidgetRef.is_stale: detect access to aWidgetRef/WindowRefwhose widget has left the UI tree.
Changed#
_is_stale()checks all same-titled windows before flagging a widget as stale, avoiding false-positives from leftover windows.WidgetRef.click()reads cached widget data so itsbring_to_front()awaits can’t self-trip the staleness check.ContentBrowserTestHelper._focus_treeview_items(): single-item focus no longer destabilises the source widget mid-drag.
[1.4.6] - 2026-05-26#
Fixed#
OMPE-93585:
ui_test.find()/ui_test.find_all()no longer crash Kit when the widget tree contains native widgets (e.g. the Script Editor’sTextEditor) that reportnullptrchildren. The fix lives inomni.ui_query(1.1.11) and is picked up transparently; covered byTestFindAgainstNoneChildren.
[1.4.5] - 2026-05-19#
Fixed#
OMPE-93591:
menu_click(): raise a descriptiveLookupErrorwhen a menu segment cannot be found, instead of crashing withAttributeError: 'NoneType' object has no attribute 'center'.
[1.4.4] - 2026-02-17#
Changed#
OMPE-79631: Change CheckBox’s click position to its position instead of its center.
[1.4.3] - 2025-09-22#
Changed#
OMPE-64379: Add missing readme key in extension.toml
[1.4.2] - 2025-08-01#
Changed#
Updated documentation with AI agent.
[1.4.1] - 2025-06-21#
Fixed#
ui_test.find_all only returns windows which are not destroyed
[1.4.0] - 2025-05-28#
Changed#
added extra parameter to
async def input(self, text: str, end_key = KeyboardInput.ENTER, human_delay_speed: int = 2, clear_before_input: bool = False, force_input: bool = False)added new function
async def find_with_retry(self, widget_id, max_retries = 50)
[1.3.6] - 2025-04-22#
Changed#
Added clear_before_input to function input as it can randomly append instead of replacing string.
[1.3.5] - 2025-04-08#
Changed#
OMPE-43022: Handle the runtime exception when acquiring windowing interface on OVC2.
[1.3.4] - 2025-01-30#
Changed#
menu_click(): Fixes including handling already shown menu
[1.3.3] - 2024-11-15#
Changed#
emulate_mouse_move_and_click(): added human_delay_speed before click so mouse move as get processed
[1.3.2] - 2024-06-06#
Changed#
Remove retry_until_success from this extension because a copy has been added to omni.kit.test.async_unittest.AsyncTestCase
[1.3.1] - 2024-06-05#
Added#
Add comments in retry_until_success and raise TimeoutError when it exceeds the maximum number of retries.
[1.3.0] - 2024-05-31#
Added#
Added function retry_until_success to reduce the waiting time and make the verification more reliable
[1.2.20] - 2024-05-17#
Changed#
Restored human_delay in menu_click functions from 32 to the original 2
Disabled INFO logging
[1.2.19] - 2024-05-20#
Added#
Added function find_first to get the first matched widget for a query.
[1.2.18] - 2024-05-21#
Updated
menu_clickto accept separator as argument to click menu options containing / in the text
[1.2.17] - 2024-02-16#
Updated
menu_clickto mouse move before click as menu needs to update checked state before reading
[1.2.16] - 2023-12-20#
Updated
emulate_mousemethod to use global modifiers down rather than clearing modifiers.Fix
emulate_keyboardto correct arguments and types inWidgetRef.inputmethod
[1.2.15] - 2023-11-27#
Updated
select_context_menumethod to find the menu items with/
[1.2.14] - 2023-11-22#
changed
menu_clickto be aware of ui.Menu states, preventing incorrect toggling of already open menusadded
menu_clickoptional parametershowto indicate clicks expected behavior. IE show or hide
[1.2.13] - 2023-10-05#
added
select_context_menuoptional parameterfind_fnfor handling custom menus
[1.2.12] - 2023-02-08#
Updated find_menu to have contains_path parameter
[1.2.11] - 2023-01-27#
Updated get_context_menu to get all menu items & separator using get_all parameter
[1.2.10] - 2022-10-31#
Added ui.IntDrag & ui.IntDrag support to
input
[1.2.9] - 2022-08-30#
Added modifier for
KeyDownScope.
[1.2.8] - 2022-08-12#
Added get_context_menu which gets current open context menu as dictionary
[1.2.7] - 2022-07-19#
Restored human_delay change in emulate_keyboard_press
[1.2.6] - 2022-07-19#
Incremented human_delay on emulate_keyboard_press & menu_click as now menus use async actions
[1.2.5] - 2022-06-27#
Added
ignore_caseparameter tofind_menu
[1.2.4] - 2022-05-27#
Added parameter
key_endtoinputfunction so you can use alternative key to KeyboardInput.ENTER like KeyboardInput.TABAdded support for
ui.FloatSliderwhich requires CTRL pressed to start typing
[1.2.3] - 2022-05-19#
Added
KeyDownScope
[1.2.2] - 2022-04-20#
Quiet human_delay spam in ui_test
[1.2.1] - 2022-03-16#
Added
drag_dropmethod toWidgetRef
[1.2.0] - 2022-03-11#
Add
emulate_mouse_scrollmethod
[1.1.1] - 2022-03-11#
Add
emulate_mouse_drag_and_dropadded pause before drop to prevent failures on Linux
[1.1.0] - 2022-02-23#
Add
emulate_key_combomethod
[1.0.3] - 2021-12-10#
Updated#
Updated
emulate_mouse_move_and_clickto pass on double clickFixed
emulate_mouse_clickdouble click
[1.0.2] - 2021-11-24#
Updated#
Added variable human_delay support in functions
Added model accessor to
WidgetRefAdded compare function to
Vec2Fix for viewport right-click
[1.0.1] - 2021-11-16#
Updated#
Add more docs and types, cleanup API
[1.0.0] - 2021-10-01#
Changes#
Created