Building a test automation framework with Selenium is more an art than a technical activity. A lot needs to be considered when building such frameworks. Understanding client expectations for what needs to be delivered is a key aspect in thinking about automation. 

Automated testing approaches with technologies which can build applications much faster than a traditional full stack brings automation testing time in a squeeze. Technologies like OPA and FirmStep’s Achieve Forms and Microsoft Dynamics CRM, which have known to speed up application building time significantly, have also impeded test automation. This leads to a small window for automation testing and are ruled out of scope. I have worked with all of the above technologies and have faced the same experience.

This led me to build an automation framework using Cucumber which can be understood by all the members in the project. We could sit down with the BA and the Scrum Master and translate requirements and acceptance criteria into an automated test.