getstatuscode不能与phantomJS一起使用

时间:2014-08-19 12:58:12

标签: selenium-webdriver phantomjs bdd behat mink

我正在测试一个带有加载和加载网页的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。

有没有人知道我是否可以用某些东西替换它并得到类似的结果。

1 个答案:

答案 0 :(得分:0)

Behat中的PhantomJS支持是通过WebDriver协议(selenium)实现的。 WebDriver doesn't support inspecting status codes on purpose,因为它超出了模拟用户操作的范围。