Forum: Ruby on Rails Why not giving every link, button etc. tag a unique id attr?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Faa5e8aebe848a1393e8392cdaea8566?d=identicon&s=25 Joshua M. (josh)
on 2007-03-24 21:21
Hi all

I'm playing around with Selenium IDE for creating automated acceptance
tests for my RoR projects (very cool tool by the way).

Often it's the easiest way to pass a HTML-tag ID to Selenium to perform
actions such as clicking on a link or submitting a form.

Sadly Rails does not automatically create ID attrs for many tags like
links or buttons.
Has this a special reason? Or is it safe to customize the link_to etc.
helpers so they create ID's automatically?

Thanks for help
Josh
13df438de19ca028b7aaf2bf5658dcdf?d=identicon&s=25 Jeff C. (jeff)
on 2007-03-25 03:21
(Received via mailing list)
On Mar 24, 3:21 pm, Joshua Muheim <rails-mailing-l...@andreas-s.net>
wrote:
> Sadly Rails does not automatically create ID attrs for many tags like
> links or buttons.
> Has this a special reason? Or is it safe to customize the link_to etc.
> helpers so they create ID's automatically?

No special reason, other than how would Rails generate the IDs in a
predictable fashion?  If you are not (or can not) cache the generated
html from a template, then the template will be evaluated each time
form the server, so Rails would have to have some way of making sure
all the IDs it generates are unique across the page - perhaps unique
across the whole app depending on what you're testing.  Not to
mention, you would probably want Rails to use the same IDs for the
same elements each time so your tests don't break... So I think you
can see it's not one of those no-brainers that it might seem to be.

Why don't you just specify the ID yourself for the elements that need
it?  It's pretty easy to add your own HTML IDs to all of your link_to
statements, or like you said, create your own helper that will do it
for you,

Jeff
softiesonrails.com
Faa5e8aebe848a1393e8392cdaea8566?d=identicon&s=25 Joshua M. (josh)
on 2007-03-25 11:24
Thanks, I got the point. Anyway I found that with Selenium you can pass
different types of locators, so I don't need an ID necessarily.
"link=Link Caption" does it perfectly, too. :-)
This topic is locked and can not be replied to.