如何使用 Codeception 在验收测试中断言 jQuery 设置的值?

问题描述

我正在 wordpress 中编写一个应用程序来管理狗的收养。在一个场景中,用户一个选择中选择一个主要品种,从另一个选择中选择一个次要品种。当他们选择品种时,输入(只读)字段会填充 2 个选择的值。

我想对此进行测试,并且我已经编写了一个验收测试来做到这一点。选择来自选择的狗品种,并通过 jQuery 将值添加到输入中:

Image of Field with Dog Value filled out

问题是当我尝试断言文本存在时,我不断收到错误并且测试失败。以下几行是我尝试过的:

$I->see('Kelpie X');
$I->seeElement( '#acf-field_mdr_dog_text_breed_name',['value' => 'Kelpie X']);
$I->seeInField( 'input#acf-field_mdr_dog_text_breed_name','Kelpie X');

为什么这些条件没有通过?一定是因为jQuery设置了值吗?

谢谢!

解决方法

我不知道为什么第一个不起作用,但我注意到输入文本字段中的值在 X 后面有一个空格。显然 seeInFieldseeElement 非常严格,所以这成功了:

// Note the space after the X
        $I->seeElement( 'input#acf-field_mdr_dog_text_breed_name',['value' => 'Kelpie X ']);
        $I->seeInField( 'input#acf-field_mdr_dog_text_breed_name','Kelpie X ');

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...