Pav*_*vel 4 php ajax selenium phpunit automated-tests
在测试期间,我需要做以下事情:
我的代码:
$this->byId('reg_email')->value('test@example.com');
$this->byId('reg_password')->value('seecret');
// No form here, so i can't just call submit()
// This click invokes ajax request
$this->byId('reg_submit')->click();
// Check page content (this page should appear after redirect)
$msg = $this->byCssSelector('h1')->text();
$this->assertEquals('Welcome!', $msg);
Run Code Online (Sandbox Code Playgroud)
问题
解决方案,我不喜欢:
sleep(3);在内容检查之前添加.我不喜欢它,因为:
我想知道,有没有办法跟踪ajax请求+刷新并及时检查内容?
我的设置:
Pav*_*vel 10
好吧,有一种解决方案,我不是很喜欢它,但它是一种东西,而不是什么.
我们的想法是使用更智能"休眠",有一种方法,waitUntil()它接受一个anonymous function和timeout以毫秒为单位.做什么 - 在循环中运行这个传递的函数,直到超时命中或函数返回True.所以你可以运行一些东西并等到上下文改变:
$this->waitUntil(function () {
if ($this->byCssSelector('h1')) {
return true;
}
return null;
}, 5000);
Run Code Online (Sandbox Code Playgroud)
如果有人提供更好的解决方案,我仍然会很高兴.
| 归档时间: |
|
| 查看次数: |
4872 次 |
| 最近记录: |