我正在尝试创建并使用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)
我正在使用的网站有许多虚线的类名,有关如何使用它的任何想法?
答案 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