Не удается получить скрипт Cucumber для передачи при попытке перейти по ссылке в таблице - PullRequest
2 голосов
/ 10 сентября 2010

Я использую Rails 3 с Cucumber, Capybara и Factory_Girl.Я пытаюсь проверить по ссылке «Показать» только одну из строк в таблице HTML.Я использую синтаксис:

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, который поставляется с Capybara, и то, что я использую, кажется правильным:

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

Ответы [ 2 ]

1 голос
/ 25 октября 2010

Я считаю, что Cucumber хочет иметь действительный селектор XPath.Попробуйте написать запрос XPath, который выберет TR, содержащий ячейку с текстом «Net 30».Эта ссылка может помочь: xpath для получения строк внутри таблицы

0 голосов
/ 16 марта 2013

Nokogiri выдает ошибку в селекторе CSS Net 30, потому что, конечно, это недопустимый селектор CSS. Я думаю, что вы ищете элемент, у которого text - "Net 30", который очень отличается.

...