Codeception uncheckOption()不起作用

时间:2015-11-24 15:56:03

标签: php phalcon codeception

我正在为表格写一份验收测试。测试检查一个复选框,测试是否选中了复选框,然后取消选中它。

所以我在视图中有以下代码段:

 <form>
    <div class="checkbox">
    <label for="agree"></label>
    <input type="checkbox" id="agree" name="agree">Agree to the conditions!
    </div>
</form>

在我的验收测试中我做了:

/* works */
$I->seeElement('#agree');
$I->dontSeeCheckboxIsChecked('#agree');
$I->checkOption('#agree');
$I->seeCheckboxIsChecked('#agree');
/* This does not work?*/
$I->uncheckOption('#agree');
$I->cantSeeCheckboxIsChecked('#agree');

我正在使用PhpBrowser驱动程序,因为我无法让WebDriver驱动程序在公司防火墙后面工作。

虽然seeElementseeCheckboxIsChecked确认该复选框已存在且已选中,但以下uncheckOption未成功。

测试结果是:

2) Failed to check checkbox in WelcomeCept (tests\functional\\WelcomeCept.php)

 Step  I can dont see checkbox is checked "#agree"
 Fail  Failed asserting that 1 matches expected 0.

Scenario Steps:

     11. $I->canDontSeeCheckboxIsChecked("#agree") at tests\functional\WelcomeCept.php:18
     10. $I->uncheckOption("#agree") at tests\functional\WelcomeCept.php:17
     9. $I->seeCheckboxIsChecked("#agree") at tests\functional\WelcomeCept.php:15
     8. $I->checkOption("#agree") at tests\functional\WelcomeCept.php:14
     7. $I->dontSeeCheckboxIsChecked("#agree") at tests\functional\WelcomeCept.php:13
     6. $I->seeElement("#agree") at tests\functional\WelcomeCept.php:12

仅供参考我正在使用Phalcon框架及其Volt模板引擎,并且页面在浏览器中表现正常。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

uncheckOptions有效,问题是CheckboxIsChecked断言检查页面的来源而不是测试设置的表单值。

https://github.com/Codeception/Codeception/issues/2355#issuecomment-139166355

  

$ I-&gt; dontSeeCheckboxIsChecked()方法运行Xpath查询   生成的HTML并在输入中查找已检查的属性   你指定的元素。