如何从Codeception验收测试中访问名为cookies的变量?
我正在用Codeception编写一些验收测试,我想检查cookie是否存在。通常,您可以使用(例如,如何从Codeception验收测试中访问名为cookies的变量?,cookies,selenium,acceptance-testing,codeception,Cookies,Selenium,Acceptance Testing,Codeception,我正在用Codeception编写一些验收测试,我想检查cookie是否存在。通常,您可以使用(例如,$I->seeCookie('auth_logged_in')),但在我的情况下,cookie的名称包含一个用户特定的哈希(例如,auth_logged_in_49D4; 49d4ab732056d505c2c751e2f7a5d842) 看起来现有的方法——如WebGuy->seeCookie()、WebGuy->grabCookie()等——都希望我传递cookie的确切名称,而不是检查部分
$I->seeCookie('auth_logged_in')
),但在我的情况下,cookie的名称包含一个用户特定的哈希(例如,auth_logged_in_49D4; 49d4ab732056d505c2c751e2f7a5d842
)
看起来现有的方法——如WebGuy->seeCookie()、WebGuy->grabCookie()等——都希望我传递cookie的确切名称,而不是检查部分名称
我查看了WebDriver->seecokie()
方法的工作原理,它调用$this->WebDriver->manage()->getCookies();
,因此我尝试创建一个WebGuy->seecokieematches()
方法,该方法使用正则表达式检查cookie名称,但它没有像webDriver
那样的$this->webDriver
成员
ErrorException:未定义的属性:Codeception\Module\WebHelper::$webDriver
WebHelper
类是否有方法访问WebDriver
类的成员
或者有更好的方法吗?我通过使用找到了解决方法 现在我的WebHelper方法如下所示:
公共函数请参见CookieMatches($pattern){
//Codeception 2.x
$cookies=$this->getModule('PhpBrowser')->client->getCookieJar()->all();
//Codeception 1.x
$cookies=$this->getModule('PhpBrowser')->session->getDriver()->getClient()->getCookieJar()->all();
// [...]
}