The robocop-windows package brings a library that can be used for Windows desktop automation.

The basic idea of the library is to enable windows and controls to be found by leveraging "locators" (strings that identify how to reach some window or control), then interacting with such elements.

There are three fundamental abstractions in the library:

  • Desktop: enables finding WindowElements and interacting directly with the desktop, like opening or closing apps. These actions aren't tied to a specific Window or Control.
  • WindowElement: enables finding direct ControlElements and interacting with a specific Window.
  • ControlElement: enables finding child ControlElements and interacting with a specific Control.

Note: The library itself always creates these classes which are not expected to be subclassed or instanced directly.



๐Ÿ‘‰ Check that you have added the dependency in your configuration; this library is not part of the robocorp bundle.

  • conda.yaml for automation Task Packages
  • package.yaml for automation Action Packages
  • requirements.txt, pyproject.toml,|cfg etc. for the rest

The library concepts revolve around the idea that the window of interest will be initially found using find_window and then, with that window reference, other controls can be queried and interacted with (for clicking, entering text etc.).

Below is an example using the Windows' Calculator app:

from robocorp import windows # Get the Calculator window. calc = windows.find_window("name:Calculator") # Press button "0" (the locator may vary based on the Windows version). button0 = calc.find("(name:0 or name:num0Button) and type:Button") # Clear the Calculator (the locator may vary based on the Windows version)."id:clearEntryButton or name:Clear") # Send the keys directly to the Calculator by typing them from the keyboard. calc.send_keys(keys="96+4=")


A list of releases and corresponding changes can be found in the changelog.