我正在测试一个带有加载和加载网页的Web应用程序,我想验证每次提交都没有破坏任何URL。这是一段代码片段。
$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,MINK和Goutte驱动程序(作为无头浏览器)进行CI集成(并且getStatusCode()工作正常)。但是Web应用程序上的大多数功能都是由java脚本驱动的,因此我必须继续使用支持javascript的PhantomJS。但我没有意识到getStatusCode()不适用于PhantomJS。
有没有人知道我是否可以用某些东西替换它并得到类似的结果。
答案 0 :(得分:0)
Behat中的PhantomJS支持是通过WebDriver协议(selenium)实现的。 WebDriver doesn't support inspecting status codes on purpose,因为它超出了模拟用户操作的范围。