2014-08-19 2 views
0

Я тестирую веб-приложение с нагрузками и множеством веб-страниц, и я хотел бы проверить, что ни один из URL-адресов не разбит на каждый фиксатор. Вот фрагмент кода.getstatuscode не работает с phantomJS

$page = $this->getSession()->getPage(); 
$page_URLs = $page->findAll('css', 'header nav ul a');  
assertEquals(16, count($page_URLs)); 

foreach($page_URLs as $pageUrl){ 
    try{ 
     $pageUrl->click(); 
     $statusCode = $this->getSession()->getStatusCode(); 
     echo $pageUrl->getText(); 
     assertEquals(200, $statusCode, "The webpage is not available");  
     } catch (Exception $ex) { 
     echo 'Caught exception: ', $ex->getMessage(), "\n"; 
     } 
     $this->getSession()->back(); 
} 

Я использовал Behat, норка с водителем Гут (как обезглавленный браузер) для интеграции CI (и getStatusCode() работает нормально). Но большая часть функциональности в веб-приложении - это Java-скрипт, поэтому мне нужно перейти на PhantomJS, поддерживающий javascript. Но я не понял, что getStatusCode() не работает с PhantomJS.

У кого-нибудь есть идея, если я смогу заменить это чем-то и получить аналогичный результат.

+0

Не забудьте прокомментировать, почему на земле кто-то мог бы понизить это? –

ответ

0

Поддержка PhantomJS в Behat реализована по протоколу WebDriver (селен). WebDriver doesn't support inspecting status codes on purpose, поскольку он выпадает из объема эмуляции действий пользователя.

+0

Это здорово. Спасибо, что подтвердили, что Якуб. В другой заметке, если я прокручиваю различные части приложения, как я могу убедиться, что страницы не сломаны. –

Смежные вопросы