Note: You are looking at a static snapshot of documentation related to Robot Framework automations. The most recent documentation is at https://robocorp.com/docs

robocorp-windows

robocorp-windows is a library which can be used for Windows desktop automation.

The basic idea of the library is enabling windows and controls to be found by leveraging locators (i.e.: strings which identify how to reach some window or control) and then interacting with such elements.

There are 3 basic abstractions in the library:

  • Desktop: enables finding WindowElements and interacting directly with the desktop (so, actions which aren't tied to a Window or Control can be used directly through the Desktop).
  • WindowElement: enables finding ControlElements and interacting with a Window.
  • ControlElement: enables finding child ControlElements and interacting with a specific Control.

Note: these classes are always created by the library itself and are not expected to be subclassed or instanced directly.

Usage

robocorp-windows

๐Ÿ‘‰ Check that you have added the dependency in your configuration, this library is not apart of the robocorp -package.

  • conda.yaml for an automation Task Packages
  • action-package.yaml for an automation Action Packages
  • requirements.txt, pyproject.toml 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:

from robocorp import windows # Get the calculator window calc = windows.find_window("name:Calculator") # Press button 0 (the locator is dependent on the windows version). button0 = calc.find('(name:Zero or name:0) and class:Button') button0.click() # Clear the calculator (the locator is dependent on the windows version). calc.click("id:clearButton or name:Clear") # Send the keys directly to the calculator calc.send_keys(keys="96+4=")

Changelog

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

Versioning

This library uses semantic versioning, so, when a breaking change is done a new major version is published, but beware that modules starting with an underscore _ in robocorp.windows are not considered part of the public API and should not be imported directly (so, only objects/classes reached from the robocorp.windows namespace should be used -- if access to some other method/class is needed, please create a feature request to address it).