Of course you can use the WOM/POM. You need to consider DRY (Don't Repeat Yourself) and Single Responsibility/Ownership (Each function is owned by exactly one object, and is the sole responsibility of that object).
You can define parent/child relationships within your model objects to deal with the fact that your application creates child windows.
So, if your application has a login, you'd have a LoginWindow
object to handle logging in. You might also have a HomeWindow
object for the home screen after a successful login. If your application uses components that can appear on more than one window/screen/module define an object for these components, such as MiniCartComponent
for (as an example) the shopping cart icon that displays on multiple screens/pages in a web store app.
My approach here would be to start with the obvious objects, create helper libraries for routine repeated tasks like navigation between screens, and refactor as necessary until the whole thing was as clean as I could get it.