Domino如何处理虚线类名称

时间:2014-06-07 15:46:48

标签: ruby rspec capybara

我正在尝试创建并使用domino来抽象登录页面

describe :index, :type => :request do
before do
  visit '/'
  blah_email_login('user1')
end
...

def blah_email_login(user)
  Dom::Email_Link.find_by_name 'Mail'.click
  ....
end

module Dom
  class Email_Link < Domino
  selector 'a'
  attribute :tab-label
end

这是html

<a class="tab-label fz-xs accent " href="https://mail.blah.com/..." id="blah"><span class="tab-icon img-sprite"></span><em class="strong tab-link-txt y-link-1 " title="Mail">Mail</em></a>

这个过程不能像我所说的那样预先运行错误

C:\blah.rb:93:in `<class:Email_Link>': undefined local variable or method `label' for Dom::Email_Link:Class (NameError)   

当我尝试将属性改为

 attribute :'tab-label'

我得到了......

C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/domino-0.5.0/lib/domino.rb:114:in `class_eval': (eval):2: syntax error, unexpected '-', expecting ';' or '\n' (SyntaxError)
    def tab-label
            ^

当我包含转义字符时

attribute :'tab\-label'

我得到了......

C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/domino-0.5.0/lib/domino.rb:114:in `class_eval': (eval):2: syntax error, unexpected $undefined, expecting ';' or '\n' (SyntaxError)
    def tab\-label
            ^
(eval):4: syntax error, unexpected $undefined, expecting ']'
      if value && self.class.callbacks[:tab\-label].is_a?(Proc)

我正在使用的网站有许多虚线的类名,有关如何使用它的任何想法?

1 个答案:

答案 0 :(得分:0)

尝试:

module Dom
  class Email_Link < Domino
  selector 'a'
  attribute :'tab-label'
end

<强>更新

Domino的默认行为是将属性名称中的_替换为类名see here)中的-

因此,您的属性名称应使用下划线:

module Dom
  class Email_Link < Domino
  selector 'a'
  attribute :tab_label
end