Codeception uncheckOption() 不起作用
Codeception uncheckOption() does not work
我正在为表格编写验收测试。测试检查复选框,测试复选框是否被选中,然后取消选中。
所以我认为有以下片段:
<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 模板引擎,该页面在浏览器中运行正常。
感谢任何帮助。
uncheckOptions 有效,问题是 CheckboxIsChecked 断言检查页面的来源而不是测试设置的表单值。
https://github.com/Codeception/Codeception/issues/2355#issuecomment-139166355
The $I->dontSeeCheckboxIsChecked() method runs an Xpath query against
the generated HTML and looks for a checked attribute on the input
element you specify.
我正在为表格编写验收测试。测试检查复选框,测试复选框是否被选中,然后取消选中。
所以我认为有以下片段:
<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 模板引擎,该页面在浏览器中运行正常。
感谢任何帮助。
uncheckOptions 有效,问题是 CheckboxIsChecked 断言检查页面的来源而不是测试设置的表单值。
https://github.com/Codeception/Codeception/issues/2355#issuecomment-139166355
The $I->dontSeeCheckboxIsChecked() method runs an Xpath query against the generated HTML and looks for a checked attribute on the input element you specify.