I’ve been exploring UiPath ScreenPlay for almost two months as part of a Test Automation project, mainly because application keeps changing as new features are released to production.
This makes ScreenPlay particularly interesting to explore for applications where the UI keeps changing and maintaining selectors becomes a regular activity.
The concept is quite straightforward. You provide a goal in natural language, and ScreenPlay can understand the UI, decide the required actions, and execute them. In my experience, it does work as described, but the reliability varies quite a lot depending on the application.
In my testing, on applications that are relatively stable, I was able to get around 60–80% successful execution. However, with more dynamic applications such as Salesforce, Microsoft Dynamics etc, the success rate was closer to 30–50% in my scenarios. I also noticed that in some cases, ScreenPlay can start hallucinating, leading to unnecessary or unexpected actions instead of following the most direct path.
One interesting example was a simple checkbox:
Goal: Uncheck the checkbox for the Write Access field.
Instead of directly unchecking it, ScreenPlay most of the time clicked the checkbox first, changing it from unchecked → checked. It then verified the state, realized that the checkbox was now checked, and finally clicked it again to uncheck it.
The final state was correct, but it took an unnecessary and potentially risky action to get there.
Dropdowns were another challenge. In several cases, ScreenPlay was unable to consistently select the required dropdown value, especially when the UI was more dynamic.
What worked better for me
I found that ScreenPlay works better when the goal is small and very specific.
For example, instead of giving it a large task like:
“Update the customer details.”
It is better to break it down into smaller goals:
“Select Customer Type and choose Corporate. Do not change any other fields.”
Similarly, for a checkbox, being explicit about the expected state and what not to do can help:
“Ensure the checkbox is unchecked. If it is already unchecked, do not click it.”
Overall, I think ScreenPlay has a lot of potential for handling UI areas that are expensive to maintain with traditional automation, especially when applications change frequently. But based on my current testing, I would still keep a hybrid approach: deterministic automation for predictable steps + ScreenPlay for dynamic or high-friction UI interactions.
I also believe this is an area that will improve with new releases and model improvements. I’m looking forward to running the same test cases again after a few releases and comparing the results.
I’m curious to hear from others who have used ScreenPlay in real-world projects. What success rate are you seeing, and which types of applications have worked best for you?