I am new to automation and still in learning phase. We are building an automation framework using Selenium with Java for a web app that is being newly developed. We do not have IDs for most elements in this web app right now. I am trying to identify web elements for which having unique ID is important so that I can request the developers to add IDs for these web elements.
I was thinking that it's okay not to have IDs for non-functional web elements like page headings, static content on page, etc. Among functional web elements, I think we need unique IDs for these elements without a doubt: 1. Text Fields, 2. Buttons, 3. Check-boxes, 4. Drop-downs, 5. Hyperlinks, 6. Lists.
However, I am not sure about few web elements like: 1. Hover over elements (e.g. drop down menu appears, tool tip appears, details screen appears), 2. Dynamic Tables (I guess it would be good to have unique IDs for column headings, other cells need not have IDs).
I am trying to find a way that will let us build test scripts with more accuracy and low maintenance, at the same time I do not want to over burden our developers with the task of creating unique IDs for each and every element. Please let me know whether unique IDs should be created for web elements like hover over elements, dynamic tables and any other web element that I have missed mentioning here. Thanks!