Я новичок в Ruby, и я ЛЮБЛЮ ЭТО. Игра с Watir-Webdriver. Я хочу сохранить ссылку на объекты watir в хеше и сохранить их на диск, БЕЗ определения первой переменной @browser. НапримерRuby/Watir - хранит объекты watir в хеше?
elements = {
:home => @browser.a(:href => /home.php/),
:photo => @browser.img(:id => "photo"),
:about => @browser.a(:href => /about.php/)
}
так, что дальше я могу сделать что-то вроде:
el = elements
el[:home].click
el[:photo].wait_until_present
el[:about].click
Очевидно, что это работает, если я определить @browser в самом начале ..
@browser = Watir::Browser.new
но что, если Я хочу сохранить хеш элементов как YAML в файле? Должен ли я хранить значения в качестве цитируемых строк и оценивать их на лету? например
elements = {
:home => "@browser.a(:href => /home.php/)",
# etc...
}
# store elements as YAML file...
# load elements from YAML file
el = YAML::load_file "elements.yml"
eval(el[:home]).click
eval(el[:photo].wait_until_present
# etc...
есть ли лучший способ сделать это?
Можете ли вы, возможно, выяснить, почему вы хотите это сделать? Я предполагаю, что вам, вероятно, стоит подумать об использовании шаблона объекта страницы. Примером может служить [Жемчужина страницы сайта Cheezy] (https://github.com/cheezy/page-object). –