0

是否可以在 Codeception 上使用多选框?

我的表单代码:

<form accept-charset="utf-8" class="form-vertical" id="solicitor-form" method="POST" action="http://mytest.dev/role">
  <select multiple="true" id="optgroup" name="solicitor[]">
     <option value="1" selected>Yorkshire</option>
     <option value="2" selected>Quarry</option>
     <option value="3" selected>William Hurst</option>
  </select></div></div>                            
  <input class="btn-large btn-success btn" type="submit" value="Update Access">
</form> 

我已经尝试过这样的测试:

 $i->SeeOptionIsSelected("#solicitor-form", 'Yorkshire');
 $i->SeeOptionIsSelected("#solicitor-form", 'Quarry');

但是在 SECOND 选择时代码接收失败。所以我尝试了这个:

 $i->SeeOptionIsSelected('#solicitor-form select[name=solicitor[]]', 'Yorkshire');
 $i->SeeOptionIsSelected('#solicitor-form select[name=solicitor[]]', 'Quarry');

但它似乎没有solicitor[]正确解决,特别是[]因为它会因模式匹配而绊倒自己。

编辑:我试过 Daverts 的回答是这样的:

$i->selectOption('optgroup',array('Quarry', 'Yorkshire'));

但这是运行测试时的输出:

* I select option "optgroup","lambda function"

似乎“lambda 函数”没有返回正确的结果?

4

2 回答 2

2

抱歉耽搁了。看起来这个功能没有记录。抱歉,1.6.3 发布时,我完全忘记更新文档了。

您可以传递一组选项作为第二个参数来选择多个选项。

    $I->amOnPage('/form/select_multiple');
    $I->selectOption('What do you like the most?',array('Play Video Games', 'Have Sex'));
    $I->click('Submit');

谢谢,我会尽快更新参考。

于 2013-07-17T14:46:36.607 回答
2

据我在我的应用程序中看到的,该错误与 [] 完全一致,例如我有这个选择:

<select multiple="true" class="span h300" id="products[]" name="products[]">...</select>

当我这样做时:

$I->selectOption('Products', array('value', 'someOtherValue') );

我会得到和你一样的错误。

正如你所看到的,我有一些额外的类,.span 和 .h300,所以我使用了 .h300 选择器,它在该页面上是唯一的,并且测试工作完美,值在 db 中并且验证按预期工作......

所以总结一下我的选择器是:

$I->selectOption('.h300', array('value', 'someOtherValue') );

只是我在这个问题上的 2 美分,现在没有足够的时间来调查导致 [] 问题的原因......

于 2013-11-12T16:37:51.687 回答