Hi everyone,
I’m currently working on a POC in UiPath where we need to automate interactions with multiple websites provided dynamically (URLs will be given as input).
The main objective is to identify whether a website is an e-commerce site and, if yes, perform the following steps:
Open the website using the provided URL
Identify a product on the page
Add the product to the cart (based on visible options like “Add to Cart”, “Buy Now”, etc.)
Navigate to the cart page
Attempt to modify the shipping address (or reach the stage where shipping changes can be observed)
Capture price changes (if any)
Take screenshots as evidence
Challenges:
Each website has a completely different UI/DOM structure
Selectors are not reusable across sites
“Add to Cart” buttons vary (text, position, dynamic rendering)
Some sites may require navigating into a product page first
Handling popups, login prompts, or location selectors
What I am exploring:
Using Computer Vision activities vs traditional selectors
Fuzzy selectors and Anchor Base
Keyword-based detection for buttons like “Add to Cart”, “Bag”, etc.
Retry and fallback mechanisms
My questions:
What would be the most robust approach to handle such dynamic websites in UiPath?
Is Computer Vision the preferred approach here, or is there a better alternative?
How do you design a reusable framework for this kind of automation?
Are there any best practices or existing frameworks for handling multi-site UI variations?
Hi @robo.ui
This is a great use case for UiPath automation.
Let’s start by answering your questions:
- The most robust approach would be to create a folder per webpage in your REFramework.
- Then I would create the necessary Ui Navigations/checks webpage within it’s folder. This way you have isolated each webpage with it’s own workflows.
- Then, I would “try” and find any place for reusability. So look for navigations, elements, text retrieval… Anything like that which could be reused within another website.
- Finally, it’s best to consolidate these workflows in your “Process Transaction” state by first checking which website is going to be used in a condition, and the applying the correct workflows.
- It might also be a good idea to implement a Flowchart design in your “Process” workflow since you might have multiple conditions, this will create an easier flow within the process.
- Computer Vision is usually incorporated in your standard click/type into activities by default. There is no need to use them as a standard UNLESS you are working with a legacy application that’s extremely difficult to locate elements. The standard Ui activities are great and have very useful selectors which can be edited to make more dynamic.
- I have spoken about this in my first point - refer to reusability there.
- I don’t know of any frameworks for handling multi-site Ui automation, but once again, it’s very simple to create your own.
Let me know if you have any other questions.
Hope this helps ![]()
Hello Scott,
Thanks for your detailed suggestion — I understand the approach of isolating workflows per website using REFramework.
However, in my use case, the websites are not known beforehand and will be provided dynamically at runtime. Because of this, creating separate workflows per site may not be scalable or feasible.
The challenge here is to design a generic automation that can:
Handle different UI structures across unknown e-commerce sites
Identify elements like “Add to Cart” dynamically
Work without predefined selectors for each website.
RPA is for rule based tasks where bot will be knowing everything in advance. As you don’t have that, AI is the only solution here. You can use Screenplay for this use case.
I agree with @ashokkarale on this.
UiPath Screenplay has recently been released an is pretty awesome. It pretty much allows you to type your scenario in a detailed prompt (in natural language) and the Agent will automatically interpret and execute this during runtime (without predefined Ui webpages)
It’s basically a runtime assistant. You can still use the REFramework and modularize as much as possible, but you’re correct that we can’t isolate each webpage now, so leave this part to the ScreenPlay Agent ![]()
Let us know how it goes!
Thanks Ashok and Scott for replying to this. I will be exploring this now.