【发布时间】:2014-07-04 03:59:44
【问题描述】:
我是 Ruby 的新手,我喜欢它。 玩 Watir-Webdriver。 我想将 watir 对象的引用存储在哈希中并将其保存到磁盘,而无需首先定义 @browser 变量。 例如
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's page-object gem。