从2天开始,我就开始玩豹游戏了,这是很棒的工具,但是我在场景方面有一些问题。
我想从我的应用程序中删除文章。 该过程如下: 我按下一个按钮,将显示一个警报以确认。
问题是WebDriver抛出UnexpectedAlertOpenException
好的,所以我将其添加到客户端$client->getWebDriver()->switchTo()->alert()->accept();
但是现在我得到了NoAlertOpenException
:此行后立即没有警报打开。
我很尴尬
这是我的测试:
public function testDeleteAnArticle()
{
$client = static::createPantherClient();
$crawler = $client->request('GET', '/');
$crawler = $this->loginAs($client, $crawler, 'admin', 'azerty');
$crawler = $client->click($crawler->selectLink('Dashboard')->link());
$crawler = $client->click($crawler->selectLink('ARTICLES')->link());
$client->getWebDriver()->switchTo()->alert()->accept(); //<-- it will throw a NoAlertOpenException
$crawler = $client->click($crawler->filter('a.is-danger')->eq(5)->link());
$client->waitFor('.notification');
$this->assertContains('The article has been successfully deleted', $crawler->filter('.notification')->text());
}
有人知道如何处理吗? 谢谢
答案 0 :(得分:0)
如果抛出 NoAlertOpenException 异常,则不会打开任何警报,因此黑豹无法关闭警报。
您可以在环境变量 PANTHER_NO_HEADLESS 设置为1的情况下无头运行测试。然后您可以查看实际情况。也许您的测试只是点击了错误的链接。
请注意,接受警报后,您需要重新实例化$ crawler。您可以通过以下方式重新加载页面:
$crawler = $client->reload();