Navigation

    OpenIAP

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Testing next openrpa release

    General Discussion
    beta openrpa
    1
    1
    201
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Allan Zimmermann
      Allan Zimmermann last edited by Allan Zimmermann

      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.

      1 Reply Last reply Reply Quote 0
      • First post
        Last post