2017-03-07 4 views
2

향후 호출을 위해 세션 스냅 샷을 저장할 수있는 로그 작성 메소드가 있습니다.코드 작성 - 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); 
     } 
} 

일부 Cest에서 사용할 수 있습니다. Chrome에서 제대로 작동합니다. 하지만 Firefox 환경에서 Cests를 실행하려고하면 다음 오류가 발생합니다.

[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는 현재 존재하는 모든 쿠키를 저장하는 데 더 제한적일 수 있습니다. 세션을 저장하는 데 정말로 필요한 쿠키를 저장하면이 문제를 해결할 수 있습니다 (Firefox가 현재 도메인에 있지 않다는 불만을 제기하는 다른 모든 쿠키가 아님). saveSessionSnapshot 함수를 사용하지 말고 $ this -> session = $ I-> grabCookie ('MYSESSION'); 그리고 나서 $ I-> setCookie ('MYSESSION', $ this-> session);