我正在为表格写一份验收测试。测试检查一个复选框,测试是否选中了复选框,然后取消选中它。
所以我在视图中有以下代码段:
<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
驱动程序在公司防火墙后面工作。
虽然seeElement
和seeCheckboxIsChecked
确认该复选框已存在且已选中,但以下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模板引擎,并且页面在浏览器中表现正常。
感谢任何帮助。
答案 0 :(得分:1)
uncheckOptions有效,问题是CheckboxIsChecked断言检查页面的来源而不是测试设置的表单值。
https://github.com/Codeception/Codeception/issues/2355#issuecomment-139166355
$ I-&gt; dontSeeCheckboxIsChecked()方法运行Xpath查询 生成的HTML并在输入中查找已检查的属性 你指定的元素。