2017-05-19 5 views
0

私は_loadpageの隠しAPIメソッドを使用するCodeBeaner v2.2.11のテストを作成しています。PHPBrowser非表示のAPIメソッド "_loadPage"がリダイレクトされていません

次のように私は私の\ヘルパー\アピにこれを追加しました:

public function loadpage($link) 
    { 
     $this->getModule('PhpBrowser')->_loadPage('POST', $link); 

    } 

し、次のように、アピCodeceptionテストでそれを呼び出すを:

$link = 'http://www.fiercebiotech.com/contact'; 
$I->loadpage($link); 

私が直面しています問題があることです_loadpageを使用すると、リダイレクトは行われません。最終的に解決されると、この模範的なリンクは、 http://www.fiercebiotech.com/contact-usにリダイレクトされます。

_loadpage$linkを開いたときのヘッダー応答コンソールの出力です。

I loadpage "http://www.fiercebiotech.com/contact" 
    [Request Headers] [] 
    [Page] http://www.fiercebiotech.com/contact 
    [Response] 404 

私は〜/接触で停止しないように_loadpageを取得助けるが、301リダイレクトには、〜/コンタクト私たちに従う必要があるので、私は、出力ヘッダ応答が

[page] http://www.fiercebiotech.com/contact-us 
[response] 200 

現在、私であることを得ることができます301リダイレクトに従うように_loadpageを得ることはできません。誰でもそこで成功しているのですか?

Iveは、Codeception REST関数startFollowingRedirectsを使用して、次のようにallow_redirects: trueを追加しようとしましたが、いずれの方法も機能していないようです(リダイレクトが行われないため)。私は私の問題の解決策た

class_name: ApiTester 
modules: 
    enabled: 
     - WebDriver: 
      url: '' 
      browser: 'chrome' 
      window_size: 1200x993 
      clear_cookies: true 
      allow_redirects: true 
     - \Helper\Acceptance 
     - REST: 
      url: 'host' 
      depends: PhpBrowser 
      allow_redirects: true 
     - \Helper\Api 
+0

あなたの問題は、あなたが404件のステータスを取得することではなく、301 – Naktibalda

+0

はあなたの応答をあなたに@Naktibaldaをありがとうございます。 問題は、〜/ contact-usの最終的な宛先に到達すると、リンクが〜/ contact(ソースコードのように)Chromeにアクセスしたときに301に解決されることです。このビデオのグラブに見られるように - https://www.screencast.com/t/B0qs8c8v ここでは、私がChromeから取得したヘッダの応答です: 'ステータスコード\t URL \t IP \tページタイプ\tリダイレクトタイプ\tリダイレクトURL \t http://www.fiercebiotech.com/contact \t 54.225.158.254 \t server_redirect \t永久\t http://www.fiercebiotech.com/contact-us http://www.fiercebiotech.com/ contact-us \t 54.225.158.254 \t通常\tなし\tなし – EAQA

答えて

0

:私が疑われるよう

は問題が、始まったが_loadpageはリダイレクトに従わない、それだけで要求されたページをロードし、停止していることです。この場合、 '〜/ contact-us'にページが(301で)リダイレクトされるという事実を無視して、 '〜/ contact-us'を指定します。

私は単に(_loadpage経由)のページをロードするカント は、ヘッダー応答 を取得し、私は私だけのオリジナルURLのヘッダー応答を取得するリダイレクトURL のヘッダー応答を取得されることを前提としています。私は私のforeachループにする必要が :

ソリューションURL

    1. GoがHTTPヘッダーを持っていることをGET
    2. グラブHTTPヘッダー
    3. アサートを送信しますa 200OKレスポンス

    ソリューション - それはCodeceptionコードにあるとおり:

    public function Validate_httpStatus_mainNav($mainNavLocator) 
    { 
        //Used to test main navigation -- 404 tests 
        $I = $this; 
        $mainNavLinks = $I->grabMultiple($mainNavLocator, 'href'); 
        codecept_debug($mainNavLinks); 
        foreach ($mainNavLinks as $link) { 
         $I->amOnUrl($link); 
         $I->sendGET($link); 
         $I->grabHttpHeader($link); 
         $I->canSeeResponseCodeIs(HttpCode::OK); 
        } 
    } 
    
  • 関連する問題