使用 Mocha > Chai > PhantomJS 进行一些无头测试。一切都已设置并正常工作,但我试图用错误的凭据填写表单,然后检查是否创建了 DOM 元素。
我想做的基本上是这样的:
it('should display error message string for bad credentials', function(done) {
page.evaluate(function() {
document.querySelector('input.form-input[type="text"]').value = 'foo@bar.com';
document.querySelector('input.form-input[type="password"]').value = 'wrongpass';
document.querySelector('input.form-action-b').click();
return document.querySelector('div.status-oops p').innerText;
}, function(result) {
result.should.equal('Username and password do not match.');
done();
});
});
但我得到:“未捕获的类型错误:无法读取属性‘应该’为空”
...因为 div.status-oops 还没有。我在 Chrome 控制台中得到了相同的结果,但如果我在几秒钟后尝试显示相同的文本,它就可以正常工作。
任何想法如何延迟退货?