2

私はキュウリ、カピバラ、Factory_Girl で Rails 3 を使用しています。HTMLテーブルの行の1つだけの「表示」リンクをたどってテストしようとしています。私は構文を使用しています:

And I follow "Show" within "Net 30"

次のエラーが表示されます。

unexpected '30' after 'DESCENDANT_SELECTOR' (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/web_steps.rb:14:in `with_scope'
./features/step_definitions/web_steps.rb:34:in `/^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/'
features/view_payment_terms.feature:10:in `And I follow "Show" within "Net 30"'

失敗する完全な Cucumber スクリプトは次のとおりです。

Feature: View Payment Terms
  In order to view payment terms
  As a user
  I want to view payment terms

    Scenario: View Payment Terms
      Given there is a payment term named "Net 30"
      And there is a payment term named "Net 60"
      When I go to the "payment terms screen"
      And I follow "Show" within "Net 30"
      Then I should see "Terms description: Net 30"

その行を次のように変更すると:

And I follow "Show"

エラーなく通過します。カピバラに付属の web_steps.rb を調べたところ、使用しているものは正しいようです。

When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector|
  with_scope(selector) do
    click_link(link)
  end
end
4

2 に答える 2

1

Cucumber は有効な XPath セレクターを必要としていると思います。テキスト「Net 30」を含むセルを含む TR を選択する XPath クエリを作成してみてください。このリンクが役立つ場合があります:テーブル内の行を取得する xpath

于 2010-10-24T20:52:36.710 に答える
0

Net 30もちろん、それは有効な CSS セレクターではないため、Nokogiri は CSS セレクターでエラーをスローしています。テキストが「Net 30」である要素を探していると思いますが、これは非常に異なります。

于 2013-03-16T11:02:17.560 に答える