2014-06-22 2 views
1

Я начинаю делать BDD с огурцом.Не можете найти поле "название" (Capybara :: ElementNotFound)

Я написал свой первый сценарий, как этот

Scenario: ... 
Given I am on the new event page 
And I fill in "title" with "tata" 

С этими шагами

Given /^I am on (.+)$/ do |page_name| 
    visit("/event/new") 
end 

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

Это работает хорошо, приятно. Теперь я хочу использовать функцию отправки для посещения страницы. Поэтому я изменил первый шаг следующим образом.

Given /^I am on (.+)$/ do |page_name| 
    self.send("new_event_path".to_sym) 
end 

Страница не найдена, но fill_in не работает, потому что элемент не найден.

Unable to find field "title" (Capybara::ElementNotFound) 

Я не понимаю, почему он не работает с функцией отправки?

+0

Ваша вторая реализация «Я на» ничего не накажу, он просто оценивает URI и отбрасывает его. –

+0

Добавьте, знаете ли вы, что решение будет более общим, чем первое решение? Я вижу это решение здесь: https://github.com/cucumber/cucumber-rails-training-wheels/blob/master/lib/generators/cucumber_rails_training_wheels/install/templates/support/paths.rb – elhostis

+0

нормально, я просто имею для посещения (path_to (my_page)) – elhostis

ответ

0

Решение:

Given /^I am on (.+)$/ do |page_name| 
    visit(self.send("new_event_path".to_sym)) 
end 

Спасибо Дэйв, Ваш ответ поможет мне :)

Эрик

Смежные вопросы