Hello, in my opinion you should avoid using Surface Automation for creating automation as it has following disadvantages:
- It uses screen coordinates to click on objects. So accuracy will be very low.
- If the target application is not active, there is a possibility of global send keys passing the values to the wrong application.
Though Surface Automation has a lot of advantages too because of which it is used:
- When you can’t use controls programmatically (i.e. by element identifiers)
- When the system under automation is changing (i.e. element identifiers are changing).
- Also, it is faster than ’normal’ scripting.
So, it completely depends on your requirement and feasibility.