Configuring Robot Screen Resolution
When automating applications over Citrix (or Remote Desktop), UiPath uses image recognition to identify elements on the screen. Sometimes an offset is used after locating the image, as for performing a relative click or a relative screen scrape.
Image automation techniques may be sensible to resolution differences between the development and production environments. Although UiPath works well for identifying images at different resolutions even when reasonable scaling is involved, there are cases when automation may break or misbehave, depending on host and VM resolution variations:
- For a smaller VM resolution, elements might be rearranged in an application with responsive layout or elements may be left out of viewport if scrollbars appear
- For a smaller host resolution than the VM resolution, elements may be either left out if scrollbars appear in the VM window or they may suffer severe visual distortion if autoscaling is applied instead
Therefore, a general guideline would be that in production environment, resolutions should be at least as in development phase and that the host resolution be greater or equal to VM resolution, yet ideally both resolutions should be the same.
By default, when a robot starts an interactive Windows session (via Orchestrator or from Windows Task Scheduler), it uses the system resolution that the user configured for the machine.
If a custom resolution needs to be designated for the robot, following should be defined in %ProgramData%\UiPath\UiPath.settings file:
LoginToConsole flag makes a difference for these settings by establishing if the robot starts an interactive Windows session by logging to the console or by simulating a RDP session.
If LoginToConsole is true, the resolution is limited by the graphical card of the robot machine (which might be as low as 800x600 in some cloud environments), otherwise the resolution for a simulated RDP connection is restricted by RAM (which would generally be more permissive).
Currently, resolution configuration is specific to the robot machine, but it will soon be included in project.json file in a future UiPath release.