2017-03-07 5 views
2

今後の呼び出しでセッションスナップショットを保存できるlogginメソッドがあります。コード化 - Firefoxでセッションスナップショットを保存およびロードできない

public function loggedInIntoFrontend($name, $password) 
{ 
    $I = $this->driver; 
    // if snapshot exists - skipping login 
    if ($I->loadSessionSnapshot('login')) { 
     return; 
    } 
    // logging in 
    $I->amOnPage(LoginPage::getUrl()); 
    $I->submitForm(
     LoginPage::$form, 
     [ 
      '_username' => $name, 
      '_password' => $password, 
     ], 
     LoginPage::$btnLogin 
    ); 
    $I->see('Autotest'); 
    // saving snapshot 
    $I->saveSessionSnapshot('login'); 
} 

_before()の方法で私のCestsで使用します。ここのように:

class OrderFlowCest 
{ 
    public function _before(AcceptanceTester $I) 
     { 
      $I->loggedInIntoFrontend(LoginPage::LOGIN, LoginPage::PASSWORD); 
     } 
} 

私はそれをいくつかのCestsで使うことができます。 Chromeではうまく動作します。しかし、Firefoxで環境を操作しようとすると、このエラーが発生します。

[Facebook\WebDriver\Exception\InvalidCookieDomainException] You may only set cookies for the current domain Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03' System info: host: '5-255-93-81', ip: '5.255.93.81', os.name: 'windows', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_101' Driver info: driver.version: unknown

誰かがこれに遭遇しましたか?

答えて

0

私はCodeception gitter chatでLars Frantzenから回答を得ました。

Firefoxは、現在存在するすべてのCookieを保存することで、より制限的な場合があります。この問題は、セッションを保存するために本当に必要なCookieを保存するだけで解決できます(Firefoxが現在のドメインに存在しないと不平を言う可能性がある他のすべてのCookieもそうではありません)。したがって、saveSessionSnapshot関数を使用しないでください。$ this - > session = $ I-> grabCookie( 'MYSESSION');その後、$ I-> setCookie( 'MYSESSION'、$ this-> session);となります。

関連する問題