如何在sfTestBrowser中模拟SELECT控件的选择

时间:2011-05-18 16:51:14

标签: testing symfony1 functional-testing

在symfony的功能测试中,sfTestBrowser提供了方法

  • 点击()“模拟链接或按钮上的点击。”
  • select()“模拟选择复选框或单选按钮。”

并取消选择()。

但我还没有找到一种模拟从< select>进行选择的方法。元件。

有人知道这样做的方法吗?

1 个答案:

答案 0 :(得分:2)

这也困扰了我。我假设您只想设置表单提交的值?如果你知道价值,你当然可以做到

$browser->click('Save', array(
    'theselectfield' => 'desired_value'
));

但通常我不知道我想发布的值,因为它来自数据库驱动的选择框。所以我的解决方案是

$theOption = $browser->getResponseDomCssSelector()->matchAll('select[name*=name_of_select_field] option:contains(TheOptionTextYouWant)')->getNode();

$browser->setField('theselectfield', $theOption->getAttribute('value'));
... or use $browser->click() instead ...

令人沮丧,因为你必须打破$浏览器调用链,才能使用getResponseDomCssSelector(),但我找不到更简单的方法。