Codeception - 无法在 Firefox 中保存和加载会话快照
Codeception - Can't save and load session snapshot in 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
有人遇到过吗?
我在 Codeception gitter 聊天中得到了 Lars Frantzen 的回答。
Firefox 可能对保存当前存在的所有 cookie 有更多限制。您可以通过保存您真正需要保存会话的 cookie 来解决这个问题(而不是所有其他可能导致 Firefox 抱怨它们不在当前域中的 cookie)。所以不要使用 saveSessionSnapshot 函数,而是像 $this -> session = $I->grabCookie('MYSESSION');然后 $I->setCookie('MYSESSION', $this->session);.
我有一个登录方法可以保存会话快照以备将来调用。
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
有人遇到过吗?
我在 Codeception gitter 聊天中得到了 Lars Frantzen 的回答。
Firefox 可能对保存当前存在的所有 cookie 有更多限制。您可以通过保存您真正需要保存会话的 cookie 来解决这个问题(而不是所有其他可能导致 Firefox 抱怨它们不在当前域中的 cookie)。所以不要使用 saveSessionSnapshot 函数,而是像 $this -> session = $I->grabCookie('MYSESSION');然后 $I->setCookie('MYSESSION', $this->session);.