Я пытался проверить ошибки HTTP 403 с помощью PHPUnit. Я изучил код расширения Selenium PHPUnit и обнаружил, что драйвер завершает сеанс, как только он получает неверный ответ, и, похоже, нет способа обойти эту функцию.
Я решил использовать решение try-catch и перезапустить сеанс Selenium:
try {
$this->open('restricted_url');
$this->assertTitle('The page cannot be displayed');
} catch (PHPUnit_Framework_Exception $e) {
$this->start();
}
Когда сеанс Selenium перезапускается, вся информация о сеансе теряется, как и следовало ожидать, поэтому вам нужно будет заново построить сеанс, чтобы запустить больше тестов:
$this->loginAsGuest();
try {
$this->open('admin_url');
$this->assertTitle('The page cannot be displayed');
} catch (PHPUnit_Framework_Exception $e) {
$this->start();
$this->loginAsGuest();
}