我正在使用codeception在ajax页面上进行测试,在其中单击按钮,在执行AJAX请求后会显示某种文本。
$I->amOnPage('/clickbutton.html');
$I->click('Get my ID');
$I->see('Your user id is 1', '.divbox');
如您所见,测试的工作方式应该是“您的用户ID为{$ id}'返回(在这种情况下id为1),并使用文本更新div框。但是,它根本不起作用,而是测试说div框是空白的。我做错了什么?如何使用codeception测试AJAX请求?
答案 0 :(得分:1)
您也可以使用:
$I->click('#something');
$I->waitForText('Something that appears a bit later', 20, '#my_element');
20
=超时(以秒为单位),给它一些理智的价值。
它更灵活,而不是像$I->wait(X);
这样的东西,因为它们通常比在几秒钟内等待它们快得多。所以,例如,如果你有许多元素,你需要等待"因为,让我们说15-20,然后你的测试将花费15-20秒"等待"而实际操作总共可能达到1-2秒。在许多测试中,这可能会显着增加构建时间,这不是很好:)
答案 1 :(得分:0)
在检查div时,您确定您的请求已经完成吗?发送请求后尝试添加一点等待:
$I->amOnPage('/clickbutton.html');
$I->click('Get my ID');
$I->wait(1); //add this
$I->see('Your user id is 1', '.divbox');