In automatic tests, it is often difficult to work with pages that differ depending on the screen size, type of user, localization, or other conditions. And when you work with such pages - a strong desire arises - “the page is almost the same, i just need one additional click for mobile version ...”, and often “if / else” becomes the solution. In this talk, I want to show the approach that I use in the current project, which allows me to support and develop tests for 12 versions of the same web application. I called this Versioned Page Objects. It allows to reuse common logic between different versions of page through inheritance, and also override or remove some logic where necessary, without any if / else blocks across the code. TypeScript code examples