2013-08-15 2 views
0

Я следующее поле ввода генерируется Symfony:Как найти поле Symfony 2 в Behat/Mink

<input type="text" id="my_project_localebundle_citytype_name" 
name="my_project_localebundle_citytype[name]" required="required" 
maxlength="45" class="text"> 

И я пишу свой сценарий, как это:

@javascript 
    Scenario: Add a city 
    Given I follow "Locales" 
    And I follow "Add city" 
    Then I fill in "name" with "Testing 1 2 3" 
    ... 

Однако поле не может быть найден

Form field with id|name|label|value "name" not found. 

Я знаю, что я мог бы поставить свой полный идентификатор или имя, но это слишком долго, и я хочу, чтобы держать его, есть ли способ, е asier, чтобы заполнить его в моем сценарии без редактирования моего ввода?

+1

В вашем поле нет метки? – Shady

+0

@Shady Нет, я не имею, у меня просто есть заголовок h3 – dextervip

ответ

1

То, что я понял с помощью огурца, показывает, что не так с нашим дизайном и UX. И если мы не можем сообщить программе, какое заполнение поля, как человек мог бы он?

Также главная цель вашего сценария - не заполнять форму, а добавлять город. Поэтому вы должны изменить Then на And на линии Then I fill in "name" with "Testing 1 2 3".

С другой стороны, вы можете просто добавить определенный метод проверки и сохранить читаемую функцию, что-то вроде:

And I fill the city's creation form field with "Testing 1 2 3" 

Затем в контексте:

/** 
* @Given /^I fill the city's creation form field with "([^"]*)"$/ 
*/ 
public function fillCitysCreationForm($arg1) 
{ 
    $this->fillField('my_project_localebundle_citytype_name', $arg1); 
} 

PS: Я Бесполезный 't проверить предыдущий код, вам, возможно, придется его улучшить.

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