Php Codeception-Can';t在Firefox中保存和加载会话快照
我有一个loggin方法,可以保存会话快照以备将来调用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-&
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)