What is your approach to implementing Object-Oriented Programming (OOP) principles in your automation framework?
Implement a small automation runner that processes set and click actions through a common abstraction. The function receives a list of action dictionaries and returns the final state, click counts, and execution logs. Use classes to demonstrate encapsulation, inheritance, polymorphism, and composition.
The required signature is run_automation(actions). Each action is either { "type": "set", "target": string, "value": any } or { "type": "click", "target": string }.
set or click.set action includes any JSON-compatible value.def run_automation(actions):