如何在Behat / Mink中找到symfony 2字段

时间:2013-08-15 23:33:02

标签: symfony behat mink

我有symfony生成的以下输入字段:

<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.

我知道我可以把我的完整身份或姓名,但它太长了,我想保留它,有没有更容易填写我的方案而不编辑我的输入?

1 个答案:

答案 0 :(得分:1)

我对小黄瓜的理解是,它显示了我们的设计和用户体验有什么问题。 如果我们不能告诉程序什么字段填充,人类可以怎么样?

此方案的主要目的不是填写表单而是添加城市。因此,您应该在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:我没有测试以前的代码,你可能需要改进它。