我需要做些什么才能使PHPSESSID
Cookie可测试?
我有index.php,我在其中设置了session_start ()
的Cookie,这让我在“现实生活中”会话cookie“PHPSESSID
”。
现在我只想知道cookie存在于
$I->amOnPage('/index.php');
$I->seeCookie('PHPSESSID');
但我得到
Fail Failed asserting that an array contains 'PHPSESSID'.
像see('something','h4')这样的简单测试就可以了。
acceptance.suite.yml
actor: AcceptanceTester
modules:
enabled:
- WebDriver:
url: http://nginx-web/
browser: chrome
host: chrome
window_size: maximize
- \Helper\Acceptance
我使用下面的图像在Docker中运行它,但这不应该有任何区别:
codeception/codeception:2.3.5 and
selenium/standalone-chrome-debug:3.7.1
问题:我是否必须为cookie做“活着”?我几乎认为我需要在Codeception中使用setCookie
,但这似乎不合逻辑(手动创建cookie)。如果我这样做,我实际上无法测试session_start()是否有效。
非常感谢任何帮助!
答案 0 :(得分:0)
它确实与docker setup ....等等有关。我们的nginx服务器在反向代理后运行,而且我们有检查,如果您不是来自我们的域,则不允许您执行特定操作。对于一些尚未知道的原因,即使从一开始,这也会以某种方式干扰cookie。
解决方案:
在您的docker-compose设置中为selenium图像extra_hosts