2009-07-27 78 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

相關問題