we have a business centered around some sort of web application with steps like a wizard:
- Landing page with information
- Page where user can enter personal information (name, email, phone, address, ...)
- Page where user can enter information on the item they are interested in. This page can contain quite a lot of fields to enter information in.
- Summary page with confirmation button
- Thank you page after confirming the subscription
The pages themselves are not that difficult, the problem lies in the fact that we provide this flow for several business lines in different countries.
So page 2 varies in the entry fields: US address is different than UK address, etc.
Page 3 varies the most because we sell different kind of subscriptions that require different info.
So we have product1_US, but also product1_UK, etc Also: product2_US, product2_UK, etc.
In the code of the application there is some shared code, but also each combination of product, country has specific code.
Since the business wants to roll out more and more products in more countries, I don't think it is feasible to make PageObjects for each combination (product,country).
How best to structure my code for this?
Should I make an almost empty skeleton PageObject that I fill in for each combination (product,country)? Should I model parts of the page for each combination and combine the parts into the skeleton class?
Since application is made in C#, we will most likely also be using C# with NUnit.