There are several factors that determine how you handle this. Depending on how the white labeling works, you may be able to get away with one solution that can handle all the websites via a configuration setting that defines the base URL for each site.
Some things you can consider:
- Use IDs wherever possible - particularly if the white labeling involves different CSS class names, using something static to identify the elements you're interacting with means you can reuse a lot of the code.
- Have common library functions to identify elements - Even if the IDs and CSS class names differ, you can create a library that will identify an element by some distinct identifier and return the element object. That means you can identify your fields no matter what differences the white labeling generates.
- Data drive your tests wherever possible - This can include your user journeys as part of a test, by passing in whatever data the test requires.
- DRY and SOLID - Keep your test code as free from copy/paste and near identical code as possible, and follow SOLID coding principles as much as possible.
Beyond that, try structuring your test code different ways and see which work best for you. My preference is to have the code generic enough to have a single solution with the different sites handled by data and configuration, but that may not work as well for you.