I'm curious about the best way to handle identification for dynamic data during testing. We have a table with rows that include specific links in one of the columns. Is it a good idea to use the database ID of the object directly in the HTML `id` field? What are the pros and cons of this approach?
5 Answers
Absolutely! That's the purpose of the `id` attribute—unique identification. Just ensure the IDs are unique on the page and avoid any sensitive information to maintain security.
Using the database ID is generally a good idea for dynamic data, ensuring elements are uniquely identifiable. However, be wary of exposing sensitive data or creating dependency on the backend ID structure. Consider using a distinctive prefix or suffix to prevent conflicts with other IDs.
Using the database ID for the HTML `id` attribute can work well for unique identification and is a common practice. Just be cautious about starting the ID with a digit, as there are CSS selector limitations. It's often better to prefix it with a string, like `foo-123`, to ensure compatibility.
I've found that putting the database ID in the `id` attribute is quite effective for testing. It allows you to reliably target elements amidst dynamic data. However, keep your IDs unique. Sometimes, I prefer using `data-id` attributes instead; they provide a cleaner approach and help avoid conflicts. Overall, using the database ID has been reliable for me.
While using an `id` might be fine, remember, you have the freedom to use data-attributes as well. They're handy and can be accessed with CSS selectors or JavaScript query methods, making them versatile for dynamic scenarios.

Yeah, I totally agree! Using `data-` attributes can be a good practice to separate logic from presentation. It just feels cleaner!