2011-05-18 35 views
1

模拟选择在symfony的功能测试,sfTestBrowser提供的方法如何从SELECT控制在sfTestBrowser

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

和unselect()。

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

有没有人知道一种方法来做到这一点?

回答

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(),但我还没有找到一个更简单的方法。

+0

谢谢。我曾想过类似的东西,但它看起来可怕,我看不出如何选择的选项。如果这是我测试的过渡,浏览器的>点击()就可以了(虽然这是制定出所有参数的疼痛)。 – 2011-05-23 11:32:58