All notable changes to Robotframework-FlaUI will be documented in this file. This project adheres to Semantic Versioning.
This document follows the conventions laid out in Keep a CHANGELOG.
- #216 Removed alias property in robotframework-flaui settings.
- #202 New Keywords
- Click Hold Open
- Click Hold Close
- #204 New Keyword
- Invoke Button
- #206 New alias property include to fix alias usage.
Library FlaUILibrary uia=UIA3 screenshot_on_failure=True alias=FLA AS FLA
- #202 Bad Naming changed
- Argument naming in all Click Hold keywords updated from timeout_in_ms to hold_time
- #211 Click Close TypoFix
- the default timeout of click close changed from 1ms to 1000ms
- #192 New Screenshot Logging behaviour using Base64 encoded images
- #193 Changed Screenshot keyword behaviour (Optional XPATH for element-based screenshot)
- #197 New Keywords
- Element Should Be Offscreen
- Element Should Not Be Offscreen
- #195 click open bugfix
- click open will not fail if the click button disappears after click
- #177 New Keywords
- Get Grid Columns Count
- #173 New Keywords
- Middle Click
- Middle Click Hold
- Middle Click Open
- Middle Click Close
- Scroll Up
- Scroll Down
- #187 uncatched exception in reliable cliks
- exception catching added
- #185 Include AutomationElement Keyword usage
- AutomationElement object from Find All Elements Keyword can be used for all FlaUILibrary Keywords directly
@{elements} Find All Elements //*[@AutomationId="CarouselMenuText"] FOR ${element} IN @{elements} ${name} Get Name From Element ${element} Log ${name} END
- #169, #179, #168 Redesign from screenshots module
- Screenshots are only created from FlaUILibrary keywords
- #169, #179, #168 Redesign from screenshots module
- Blacklist and Whitelist Keywords removed from FlaUILibrary
- #174 Improve grid wrong row count
- Grid wrong row count fixed
- #174 grid multiselection issue
- Fix for Grids with multiselection disabled
- #155 New Keywords
- Select Combobox Item By Name
- #158 Improve element focus action
- Added error handling to focus
- #160 Catch PropertyNotSupportedException on Find All Elements Keyword
- #163 Improved Error Message
- Stable clicks Will distiguinsh if the click element or the element to be opened/closed is not available
- Correcting an error message grammatically
- #147 New Keywords
- Click Open
- Click Close
- Double Click Open
- Double Click Close
- Right Click Open
- Right Click Close
- #152 Add additional keyboard parameters
- Support for key press or key release only in "Press Key" Keyword
- Update WPF test application to handle key down / up events correctly
- #135
- Robotframework 7 Support
- #135
- Python 3.6 and 3.7 Support
- #145
- Whitelisted keywords will be logged now in reports.
- #145
- Whitelisted keywords will be logged now in reports.
- #143 New Keyword
- Listbox Should Not Contain
- #138
- Avoid UIA2 instance creation. This is only a workaround. Windows 7 x64 does not work properly with UIA2.
- #138
- Avoid UIA2 instance creation. This is only a workaround. Windows 7 x64 does not work properly with UIA2.
- Python 3.12 Support
- Release from Python.Net 3.0.2
- #131 New Keywords
- Wait For Application While Busy By PID
- Wait For Application While Busy By Name
- Wait For Application Handle By Name
- Wait For Application Handle By PID
- #96 New Keywords
- Is Element Offscreen
- Wait Until Element Is Offscreen
- #96 Multiple Keywords renamed because of misleading keyword understanding
- 'Wait Until Element Is Visible' to 'Wait Until Element Exist'
- 'Wait Until Element Is Hidden' to 'Wait Until Element Does Not Exist'
-
Keyword 'Get Property From Element Keyword'
- Add new operation 'VALUE'
- Add new operation 'IS_SELECTED'
-
- Keyword 'Switch UIA To' implemented to change between UIA2 or UIA3
- Keyword 'Close Application By Name' implemented to close application
- Keyword 'Find All Elements' implemented to close application
-
- Whitelisting and blacklisting keywords implemented for screenshot library
- Keywords can be whitelisted to persist if failed for example
- BuiltIn.Run Keyword And Ignore Error should track always a screenshot
- Keywords can be blacklisted to ignore by screenshot module
- BuiltIn.Wait Until Keyword Succeeds to avoid unecessary screenshots
- Blacklist is prioritize before Whitelist
- Keywords can be whitelisted to persist if failed for example
- New Keywords Clear Whitelist and Clear Blacklist
- Whitelisting and blacklisting keywords implemented for screenshot library
-
Python.Net 3.0.2 support
-
#117 : Combobox will not restore into Collapsed state after calling 4 related keywords.
- Thanks to JimRevolutionist
-
#119 : Getting Duplicate screenshots when ever script is getting failed.
- Screenshot module removes invalid special characters from testcase name and hostname.
- For example 'Test Case 1234: Something to Test'
- Python 3.11 Support
- Keyword Get All Data From Grid implemented to get all data values includes header as list of arrays.
- Include additional Get Property From Element parameters
- IS_VALUE_PATTERN_SUPPORTED
- IS_READ_ONLY
- Keyword Press Key and Press Keys contains now a delay in ms usage as parameter
- Press Key ${KEYBOARD_INPUT_TEXT} ${XPATH_INPUT_FIELD} 200
- Press Keys ${KEYBOARD_INPUT_SELECT_CUT_TEXT} ${XPATH_COMBO_BOX_INPUT} 500
- If error message parameter is in usage this parameter will be interpreted as delay now
- Recommendation to avoid such issues is to use msg key by any keyword
- Press Key ${KEYBOARD_INPUT_TEXT} ${XPATH_INPUT_FIELD} msg=Error Message
- Press Keys ${KEYBOARD_INPUT_SELECT_CUT_TEXT} ${XPATH_COMBO_BOX_INPUT} msg=Error Message
- Recommendation to avoid such issues is to use msg key by any keyword
- Take Screenshot keyword will now persist manually created screenshots
- Automatic screenshots by failures will be still deleted
- Screenshots contains now a timestamp
- Required if multiple test executions are triggered by seperated names for example UIA2 and UIA3 testing
- Screenshot has to be copied after rebot merge because paths are relative to test execution folder
- Example usage
- call rebot --name ATests --outputdir result -x rebot_xunit.xml result/uia2/output.xml result/uia3/output.xml
- call xcopy .\result\uia2\screenshots .\result\screenshots\
- call xcopy .\result\uia3\screenshots .\result\screenshots\
- New Keyword implemented
- Get Property From Element
- Adjustments in Setup.py for correct version handling
- New Keyword implemented
- Wait until Element Is Enabled
- Bugfix to support Python 3.7 by missing requirements.txt
- New Keywords for elements implemented
- Element Should Be Enabled
- Element Should Be Disabled
- New Keywords for click and hold implemented
- Maximize Window
- Minimize Window
- Normalize Window
- Can Window Be Maximized
- Can Window Be Minimized
- New Keywords for click and hold implemented
- Click Hold
- Right Click Hold
- Double Click Hold
- Get Window Interaction State
- Window Interaction State Should Be
- New Should Be Keywords implemented
- Background Color Should Be
- Foreground Color Should Be
- Font Size Should Be
- Font Name Should Be
- Font Weight Should Be
- Culture Should Be
- Window Visual State Should Be
- Toggle State Should Be
- New Keywords for toggle button handling implemented
- Toggle
- Get Toggle State
- New Keywords implemented
- Get Background Color
- Get Foreground Color
- Get Font Size
- Get Font Name
- Get Font Weight
- Get Culture
- Is Hidden
- Is Visible
- Get Window Visual State
- Upgrade Python.Net to 3.0.1
- Official Python 3.9 and 3.10 support
- Test matrix update to python 3.8, 3.9 and 3.10 testing
- FlaUI upgrade from 3.2.0 to 4.0
- Python.Net upgrade to 3.0
- Python 3.6 support dropped
- New Keywords Get Rectangle Bounding From Element
- Helper parsly.py xml parser implemented for old robotframework reporting xml generation for appveyor to avoid wrong amount of test numbers
- LFS file parsly.exe removed by bfg history
- New Keywords Expand Combobox and Collapse Combobox implemented for combobox
- Select Combobox Item By Index selects now the given index value and collapsed the combox automatically.
- Support for upcoming Robotframework 5.0
- New Keyword implemented for listbox and combobox
- Get All Selected Names From Combobox, Get All Texts From Combobox, Get All Texts From Listbox
- Returns a list from all selected values by names
- Get All Selected Names From Combobox, Get All Texts From Combobox, Get All Texts From Listbox
${data} Get All Selected Texts From Combobox <XPATH>
${data} Get All Selected Names From Combobox <XPATH>
${data} Get All Texts From Listbox <XPATH>
- Keyword Get Selected Items From Combobox renamed to Get All Selected Texts From Combobox
- Get All Selected Texts From Combobox returns a List not a String anymore
- Listbox Should Contain and Combobox Should Contain keywords checks now if Text or Name is equal by input value
- New Keywords implemented for listbox and combobox
- Get All Names From Listbox and Get All Names From Combobox returns both a list from all values by names
- For a list comparison use Collections library from robotframework
${data} Get All Names From Listbox <XPATH>
${data} Get All Names From Combobox <XPATH>
- Support for upcoming Python.Net 3.0
- Converter bugfix for wrong value convert
- Tree module refactoring
- Keyword behaviour changed for Element Should Exist and Element Should Not Exist
- Keywords contains now a use_exceptions flag to decide if an exception should be called or a return value.
- Exception handling will be used in general to check if a ui element is closing or opened
- If you want to check it by your own use_exception flag should be set to ${FALSE}
- Wait Until Keyword Succeeds combination does not work anymore to check if an ui is displaying after amount of time
- Returns now always True or False
- Keywords contains now a use_exceptions flag to decide if an exception should be called or a return value.
# This throws a flaui exception and stop test exeuction
Element Should Exist /WRONG/XPATH
- You can now decide to use the old syntax or new style by using the flag parameter use_exceptions.
- This is by default ${TRUE} to avoid this breaks for checkups if a ui element is displaying delayed.
# This throws a flaui exception and stop test exeuction
Element Should Exist /WRONG/XPATH
Element Should Not Exist /VALID_XPATH
# Usage with Wait Until Keyword Succeeds
Wait Until Keyword Succeeds 5x 1s Element Should Exist /VALID_XPATH
Wait Until Keyword Succeeds 5x 1s Element Should Not Exist /VALID_XPATH
# If you want to check the return value by your own syntax.
# Wait Until Keyword Succeeds will not work anymore because this keyword will always Return True or False now
${RESULT} Element Should Exist /VALID_XPATH ${FALSE}
${RESULT} Element Should Not Exist /WRONG/XPATH ${FALSE}
New Wait Until Element Is Hidden Syntax
- Wait Until Element Is Hidden does not check anymore if element exists
- No xpath not found exception is called anymore to avoid break tests
- Application keyword modified for multi gui process handling
- Launch Application, Launch Application With Args, Attach Application By Name or PID returns always a PID.
- PID must be used by Close Application now to stop correct application ${PID}
- Old syntax stores only last started application
- It was not possible to handle multiple application processes if needed
- Unnecessary Keywords removed Attach To Application By Pid and Name
- If application with a wrong pid will be tried to close a FlaUI exception will be called
- Caller has always to close all applications by Teardown or Keywords
# Launch multiple applications
${PID_A} Launch Application APPLICATION_A
${PID_B} Launch Application APPLICATION_B
${PID_C} Launch Application APPLICATION_C
${PID_D} Attach To Process By PID ${PID}
# Close applications
Close Application ${PID_C}
Close Application ${PID_A}
Close Application ${PID_B}
Close Application ${PID_D}
- Robotframework support for 4.1.1 and 4.1.3
- Timeout behavior changed
- "desktop.FindFirstByXPath(xpath)" needs a few seconds to finds element so retry which was default 10 times would break testing duration.
- Retry is removed and sleep function can be disabled now with a "timeout=0"
- If a timeout is set then this function will now waits the amount of time and check once and do not check by a periodic timer anymore
- Default timeout is still '1000 ms' to wait for an recheck if element could not be found
- Robotframework-flaui use now PythonLibCore 3.0 package to maintain this library
- Minimum required versions
- Python >=3.6
- Robotframework >=3.2.2
- See for more information PythonLibCore documentation
- Robotframework 4.1 support
- Robotframework 4.0.3 support
- New keyword 'Wait Until Element Is Visible'
- New keyword 'Press Key'
- Robotframework 4.0.2 support
- New keyword 'Drag And Drop'
- Allow timeout parameter configuration as None or 0
- New Keyword 'Launch Application With Args'
- Timeout handler implemented for FlaUI Library
- New set of keywords for Tree:
- Get Selected TreeItems Name
- Get Root TreeItems Count
- Get All Visible TreeItems Count
- Get All Visible TreeItems Names
- Tree Should Contain
- Select Visible TreeItem By Name
- Select TreeItem
- Selected TreeItem Should Be
- Collapse All TreeItems
- Expand All TreeItems
- Expand TreeItem
- Collapse TreeItem
- TreeItem Should Be Visible
- Keyboard documentation improved by list usage example
- Robotframework 4.0.1 support
- New keyword 'Select Listbox By Name' implemented
- Robotframework 4.0 support
- Python 3.9 support
- Robotframework 3.2.2 support
- Support for UIA2 Windows Automation Interface
-
Get Element usage retries now automatic for one seconds if element will show up
- Use case if a new window is open xpath usage will be too early to access element.
-
Renamed flaui wrapper modules
- ListView to Grid
- ListControl to ListBox
-
Renamed robotframework keyword module ListView to Grid and keywords
- Get Selected Listview Rows --> Get Selected Grid Rows
- Select Listview Row By Index --> Select Grid Row By Index
- Select Listview Row By Name --> Select Grid Row By Name
- Get Listview Rows Count --> Get Grid Rows Count
-
Pylint usage implemented
- Include to keen.bat pylint
- Appveyor pylint reporting
-
Command line 'local_install.cmd' changed to 'keen.bat' with a set of supported build instructions
-
Example ListView renamed to Grid
General bugfixing from keywords and improvements from artifact building and testing
- Keyword 'Set Radiobutton State' changed to 'Select Radiobutton'
- Change build system by python matrix testing for Python 3.7, 3.8 x86/x64 testing
- Documentation moved to documentation branch
- PyPi description modified
- Split up from release and develop dependencies by seperate requirements files
- Distribution which always forces a binary package with platform name
- Python 3.8 support
- RFHUB .xml file documentation generation and include to all previous releases
- Test cases rewrite by Custom Error Handling and Data Driven Tests
- Keyword documentation page contains now all .xml file documentation for RFHUB
- Small upgrade to latest FlaUI release.
- FlaUI upgrade to version 3.2.0
Release 1.3.1 - 2020-06-20
- First release from wrapper library Robotframework-FlaUI
- Automatic wheel package generation in appveyor and local builds
- Keyword documentation by github.io
- Support for Python 3.7
- First release for supported flaui wrapper modules - Application, Checkbox, Combobox, Debug, Grid, Label, Listbox, Radiobuttion, Tab, Textbox, Windows, Keyboard, Mouse