0

我在显示对象列表和每个对象的“删除”链接的页面上运行 Selenium。

每当用户单击删除链接时,都会显示一个确认对话框并要求确认。如果用户单击确定,则删除对象并重新加载页面。

现在,我想用PHPUnitSelenium测试这种行为。

以下代码是我最终尝试的:

$this->open('account/admin');
$this->assertElementPresent('css=h1');
[...]
$this->verifyElementPresent('css=td.button-column a.delete[href$="delete/1"]');
$this->click('css=td.button-column a.delete[href$="delete/1"]');
$this->assertConfirmation('*supprimer*'); (1)
// $this->waitForPageToLoad(); (2)
$this->waitForElementNotPresent('css=td.button-column a.delete[href$="delete/1"]'); (3)

我很确定测试应该会成功,因为该功能的手动测试是可以的。此外,我已禁用此页面的登录保护:任何用户都可以访问它。

不幸的是,我无法测试页面是否已重新加载:测试(3)总是在“等待超时”时失败......

在我对文档的理解之后,从 Selenese 的角度来看,问题是导致页面重新加载的操作是click(),但重新加载实际上会确认弹出对话框返回 true 后发生。并且waitForXXX()命令应在导致重新加载的操作之后立即启动。

尽管Selenium 文档说必须使用相关的assertXXX( )处理弹出对话框,但我试图评论(1 )。结果是一样的。

我也尝试在(2)处等待ForPageToLoad() ,但这只是......等待(300000000毫秒,显然是默认值,这足以让任何页面重新加载......)

我被困住了,无法弄清楚如何测试这种简单而平凡的行为……我错过了什么?

4

0 回答 0