【发布时间】:2013-07-22 04:02:11
【问题描述】:
在测试期间我需要做以下事情:
- 单击按钮会导致 ajax 请求并在此之后重定向
- 检查用户是否被重定向到正确的页面
我的代码:
$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);
问题
- 消息检查在点击后立即进行,而不是在 ajax 请求和页面重定向之前进行
解决办法,我不喜欢:
- 在内容检查前添加
sleep(3);。
我不喜欢它,因为:
- 很傻
- 如果响应速度快,我会浪费时间,如果请求长,我会在 ajax 请求完成之前进行内容检查。
我想知道,有没有什么方法可以跟踪 ajax 请求+刷新并及时检查内容?
我的设置:
- PHP 5.4、5.5 也可用
- PHPUnit 3.8
- 用于 PHPUnit 1.3.1 的 Selenium RC 集成
- Selenium-server-standalone 2.33.0
- Windows 7 x64
- JRE 7
【问题讨论】:
标签: php ajax selenium phpunit automated-tests