Selenium: PageObjectModel vs Object Repository
Great explanation on the difference between POM and 'Data Driven' Object Repository
Testing Drupal all but requires POM due to the challenging element selector requirements & the need for multiple actions against the element/page to access it or interact with it.
Namely CKEditor injects an iframe inside a textarea and the need for JavaScriptExecutioner to update the text() of the embedded body tag.