Вас может заинтересовать использование меток компонентов вместо идентификаторов.
Поскольку, как упоминалось ранее, нельзя полагаться на идентификаторы: они генерируются.
Вот CSS-подобный селектор, который можно использовать для доступа к элементу (в Ruby используется Watir ):
def find_element_id_by_label_name(name)
label_regexp = Regexp.new(name + "\s?\:?")
l = @browser.label(:text, label_regexp)
id = l.attribute_value('f')
id
end
def find_textfield_by_name(name)
@browser.text_field(:id, find_element_id_by_label_name(name))
end