2009-07-27 75 views
2

黄瓜产生了一些巧妙的webrat正则表达式的步骤。我试过这个时遇到了问题。正则表达式步骤

在功能:

And I fill in "Telephone (Home)" with "61234567" 

在webrat步骤:

When /^I fill in "([^\"]*)" with "([^\"]*)"$/ do |field, value| 
    fill_in(field, :with => value) 
end 

遇到的错误:

Could not find field: "Telephone (Home)" (Webrat::NotFoundError) 

IT方面eems“Home”之间的括号给出了问题。如何调整正则表达式占括号?

UPDATE:

看来,正则表达式不是问题,因为“”实例变量没有屈服“电话(家庭)”。真正的问题是webrat的方式“FILL_IN”方法解析字段变量。

回答

0

此遇到了我太多同场“(退出)” ...

你可以呼吁id字段?

fill_in("user_telephone_home", :with => data) 
+0

是啊我结束了使用领域的ID,虽然它伸出像在我的黄瓜功能定义突兀。谢谢! – JasonOng 2009-07-28 02:43:48

1

如果你只是想捕捉“电话”试试这个:

/^I fill in "(\w+).*?" with "([^\"]*)"$/ 

如果是“家”你尝试在此之后:

/^I fill in "(?:.*?\()?(.+?)\)?" with "([^\"]*)"$/; 
0

我曾与webrat标签匹配场类似的问题,我想出了这个代码片段其松开用于标签匹配字段中的正则表达式。也许它会帮助你。

我有这个在我的features/support/env.rb

module Webrat 
    module Locators 
    class FieldLabeledLocator < Locator 
     def matching_label_elements_with_numbering 
     label_elements.select do |label_element| 
      text(label_element) =~ /^.*#{Regexp.escape(@value.to_s)}.*$/i 
     end 
     end 
     alias_method_chain :matching_label_elements, :numbering 
    end 
    end 
end 

http://gist.github.com/169215

相关问题