page-object API should be more similar to watir API
by Željko Filipin
Estimated reading time is 1 minute.

I have just created issue 102 for page-object gem. After I wrote it, I thought it would be a good blog post too, so I am reposting it here. If you agree, or not, please comment at GitHub issue, not here.
I am pretty sure I am not the only one that has experience with watir API, and gets confused because page-object gem uses different names for some page elements.
Examples:
| HTML | watir | page-object |
|---|---|---|
| td | td | cell |
| hidden | hidden | hidden_field |
| img | img | image |
| a | a | link |
| li | li | list_item |
| ol | ol | ordered_list |
| p | p | paragraph |
| input type=”radio” | radio | radio_button |
| select | select | select_list |
| td | td | cell |
| textarea | textarea | text_area |
| ul | ul | unordered_list |
I am all for making the API human-friendly, that is what watir tried to do in the beginning. After a few years we have noticed that people are getting confused with the API that sometimes uses the same names as HTML, and sometimes does not.
I would suggest that you leave the existing API as is and to create aliases for the people that are familiar with HTML and watir APIs.
Example: we should be able to access unordered list with both unordered_list and ul.
For more people thinking page-object API should be more similar to watir API, take a look at Alister’s Roll your own page objects blog post (and comments).
Feedback
Thank you for reading. If you want to stay in touch please use the feed or send me an email.