Testing next openrpa release
-
Looking for people willing to test the newest version of OpenRPA.
Windows selector has been updated to allow a lot more freedom.
Normally then windows selector will contain the entire tree, from the desktop and down to the element your looking for. This has turned out to not be a good solution for some types of applications. A work around was added using the SearchDescendants setting, but many people knew about it, nor used it so decided to redo windows completely and make it default. Currently the recorder will still make the "full tree" selector, but over the next weeks i will update the recorder to make more simple selectors.
So how do you test ? Need two things tested:- first of all, i really want everything to be backward compatible, so would like people to test all your windows workflows to see if they still work in the new robot
- secondly, try out the new way to make selectors shorter, by manually changing the selectors to only contain the most important part that uniquely identifies the object your looking for.
for example, getting the text area in windows 10 notepad might look something like this:
[ { "filename": "%windir%\\system32\\notepad.exe", "processname": "notepad", "arguments": " ", "Selector": "Windows" }, { "Name": "Untitled - Notepad", "ClassName": "Notepad", "ControlType": "Window", "FrameworkId": "Win32" }, { "Name": "Text Editor", "ClassName": "Edit", "ControlType": "Document", "AutomationId": "15", "FrameworkId": "Win32" } ]
The first part describes the application and selector, in the old days only selector type was used, it would use the second part to find the window and one by one, move down the element tree. With the new system, the process name matters, the robot will only look inside windows that matches the process name, so we can remove the window selector unless were looking for a specific window when multiple versions of the same process is running
[ { "filename": "%windir%\\system32\\notepad.exe", "processname": "notepad", "arguments": " ", "Selector": "Windows" }, { "Name": "Text Editor", "ClassName": "Edit", "ControlType": "Document", "AutomationId": "15", "FrameworkId": "Win32" } ]
a more useful example might be automating something with a very long selector like, clicking add customer in Uniconta
[ { "filename": "%ProgramFiles%\\WindowsApps\\Uniconta.Uniconta_1.86.8.0_x64__60387n61kfnpy\\win32\\Uniconta.WPFClient.exe", "processname": "Uniconta.WPFClient", "arguments": " ", "Selector": "Windows" }, { "Name": "Uniconta *", "ClassName": "NavigationWindow", "ControlType": "Window", "FrameworkId": "WPF" }, { "ClassName": "DockControl", "ControlType": "Custom", "FrameworkId": "WPF" }, { "Name": "DockingControl", "ClassName": "DockLayoutManager", "ControlType": "Group", "AutomationId": "DockingControl", "FrameworkId": "WPF" }, { "Name": "lGroup", "ClassName": "LayoutGroup", "ControlType": "Group", "AutomationId": "lGroup", "FrameworkId": "WPF" }, { "Name": "DocumentGroup", "ClassName": "DocumentGroup", "ControlType": "Tab", "AutomationId": "DocumentGroup_DocumentGroup(43245458)", "FrameworkId": "WPF" }, { "Name": "Customer", "ClassName": "DocumentPanel", "ControlType": "Group", "AutomationId": "Customer", "FrameworkId": "WPF" }, { "ClassName": "DebtorAccount", "ControlType": "Custom", "FrameworkId": "WPF" }, { "ClassName": "CorasauRibbonControl", "ControlType": "Custom", "AutomationId": "localMenu", "FrameworkId": "WPF" }, { "ClassName": "ScrollViewer", "ControlType": "Pane", "FrameworkId": "WPF" }, { "Name": "BarManagerbarManager", "ClassName": "BarManager", "ControlType": "Group", "AutomationId": "BarManagerbarManager", "FrameworkId": "WPF" }, { "Name": "RibbonControl", "ClassName": "RibbonControl", "ControlType": "Group", "AutomationId": "GridribbonBar", "FrameworkId": "WPF" }, { "Name": "Lower Ribbon", "ClassName": "RibbonSelectedPageControl", "ControlType": "Pane", "FrameworkId": "WPF" }, { "Name": "PageGroup0", "ClassName": "RibbonPageGroupControl", "ControlType": "Group", "FrameworkId": "WPF" }, { "Name": "Add", "ClassName": "BarSubItemLinkControl", "ControlType": "Menu", "AutomationId": "BarSubItemLink", "FrameworkId": "WPF" } ]
We can cut that down too only
[ { "filename": "%ProgramFiles%\\WindowsApps\\Uniconta.Uniconta_1.86.8.0_x64__60387n61kfnpy\\win32\\Uniconta.WPFClient.exe", "processname": "Uniconta.WPFClient", "arguments": " ", "Selector": "Windows" }, { "Name": "Add", "ClassName": "BarSubItemLinkControl", "ControlType": "Menu", "AutomationId": "BarSubItemLink", "FrameworkId": "WPF" } ]
This new selector will both be faster than the old one, and less error phrone.
If your up for helping you can grab a custom build at this link.