webrat + nokogiri + css-селекторы + пробелы = кошмар - PullRequest
1 голос
/ 14 сентября 2010

Мне нужно проверить с помощью Cucumber / Webrat наличие этой кнопки:

<%=submit_tag 'Get it'%>

Но когда я использую этот пользовательский шаг:

And I should see a button with a value of "Get it"

то есть:

Then /^I should see a button with a value of "([^\"]*)"$/ do |value|
 response.should have_selector("form input[value=#{value}]")
end

Я получаю:

    And I should see a button with a value of "Get it"                       # features/step_definitions/common_steps.rb:181
      unexpected ' ' after 'includesGet' (Nokogiri::CSS::SyntaxError)
      /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/racc/parser.rb:99:in `_racc_do_parse_c'
      /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/racc/parser.rb:99:in `__send__'
      /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/racc/parser.rb:99:in `do_parse'
      ./features/step_definitions/common_steps.rb:182:in `/^I should see a button with a value of "([^\"]*)"$/'

Когда я тестирую кнопку со значением ОДНОГО СЛОВА, она работает , так что это пробел между «Get» и «it».

Идеи

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 октября 2010

Похоже, что это определенно проблема с Нокогири, для меня:

page.search("input[value='Next Batch']")   # => Nokogiri::CSS::SyntaxError
page.search("//input[@value='Next Batch']") # => Okay
0 голосов
/ 21 сентября 2010
And I should see a button named "Get it"

custom_steps.rb

Then /^I should see a button named "([^\"]*)"$/ do |name|
 response.should have_xpath("//input[@type='submit' and @value='#{name}']")
end

Благодаря http://www.vermonster.com/2009/12/16/cucumber-workshop-recap/

...