Php Codeception-Can';t在Firefox中保存和加载会话快照

Php Codeception-Can';t在Firefox中保存和加载会话快照,php,webdriver,codeception,browserstack,Php,Webdriver,Codeception,Browserstack,我有一个loggin方法,可以保存会话快照以备将来调用 public function loggedInIntoFrontend($name, $password) { $I = $this->driver; // if snapshot exists - skipping login if ($I->loadSessionSnapshot('login')) { return; } // logging in $I-&

我有一个loggin方法,可以保存会话快照以备将来调用

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');
}
我在
\u before()
方法的Cests中使用它。就像这里:

class OrderFlowCest
{
    public function _before(AcceptanceTester $I)
        {
            $I->loggedInIntoFrontend(LoginPage::LOGIN, LoginPage::PASSWORD);
        }
}
我可能会在几次CEST中使用它。 在铬合金中工作良好。但当我尝试在Firefox环境中运行我的Cests时,我遇到了以下错误:

[Facebook\WebDriver\Exception\InvalidCookieDomainException]您可以 仅为当前域生成信息设置Cookie:版本:“2.53.1”, 版本:“a36b8b1”,时间:“2016-06-30 17:37:03”系统信息:主机: '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'驱动程序信息: 驱动程序版本:未知

有人遇到过这个问题吗?

我在Codeception gitter chat中得到了答案

Firefox在保存当前存在的所有cookie时可能会有更大的限制。您只需保存保存会话所需的cookie即可解决此问题(而不是所有其他cookie,这些cookie可能会导致Firefox抱怨它们不在当前域中)。因此,不要使用saveSessionSnapshot函数,而是类似于$this->session=$I->grabCookie('MYSESSION');然后是$I->setCookie('MYSESSION',$this->session)