关于Selenium Webdriver:getstatuscode不适用于phantomJS

getstatuscode is not working with phantomJS

我正在测试一个加载和加载大量网页的Web应用程序,我想验证每个提交都没有URL损坏。这是一个代码段。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$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(),"\
";
        }
        $this->getSession()->back();
}

我正在使用带有Goutte驱动程序的Behat MINK(作为无头浏览器)进行CI集成(并且getStatusCode()正常工作)。但是,Web应用程序上的大多数功能都是Java脚本驱动的,因此,我必须继续使用支持javascript的PhantomJS。但是我没有意识到getStatusCode()不能用于PhantomJS。

任何人都知道我是否可以将其替换为某种东西并获得相似的结果。


通过WebDriver协议(selenium)实现了Behat中的

PhantomJS支持。 WebDriver不支持有意检查状态代码,因为它不在模拟用户操作的范围之内。