是否可以在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 select上代码失败。所以我试过这个:
$i->SeeOptionIsSelected('#solicitor-form select[name=solicitor[]]', 'Yorkshire');
$i->SeeOptionIsSelected('#solicitor-form select[name=solicitor[]]', 'Quarry');
但它似乎无法正确解析solicitor[]
,特别是[]
,因为它会因模式匹配而自行解决。
$i->selectOption('optgroup',array('Quarry', 'Yorkshire'));
但这是运行测试时的输出:
* I select option "optgroup","lambda function"
似乎“lambda函数”没有返回正确的结果?
答案 0 :(得分: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');
谢谢,我会尽快更新参考资料。
答案 1 :(得分: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美分,现在没有足够的时间来调查导致问题的原因[] ...