In continuous development environments, product releases are often done on a monthly, weekly, or daily basis (Amazon does daily releases). Most often, features do change in some releases, but not in all at the same time. To support continuous releases with different feature changes and custom branded versions of the same application, it makes sense to maintain only one set of automation sources. This reduces the amount of time needed for maintaining the libraries and merging in changes continuously instead of day-to-day.
There are several ways to support multiple feature sets and multibranded applications. First, multiple locators for WebElements can be used using CSS or XPath types. Second, code can be made conditional to check for the existence of one element on a page and, based on that result, perform a different set of actions in a page...